C語言_自定義函式使用用例
阿新 • • 發佈:2019-01-10
1 . 實現一個函式,列印乘法口訣表,口訣表的行數和列數自己指定
輸入9,輸出9*9口訣表,輸出12,輸出12*12的乘法口訣表。
#include<stdio.h>
int main()
{
int n = 0;
int j = 0;
int k = 0;
printf("輸入你想要的乘法表數:");
scanf("%d", &n);
for (k = 1; k <= n; k++)
{
for (j = 1; j <= k; j++)
{
printf ("%2d x %2d = %2d ", j, k, j*k);
}
printf("\n");
}
return 0;
}
2 . 實現一個函式判斷year是不是閏年。
#include<stdio.h>
int judge_leap_year(int year)
{
if ((0 == year % 4 && 0 != year % 100) || 0 == year % 400)
return 1;
else
return 0;
}
int main()
{
int year = 0;
printf("輸入年份:");
scanf("%d", &year);
if (judge_leap_year(year))
printf("%d是閏年。\n", year);
else
printf("%d不是閏年。\n",year);
return 0;
}
3 . 建立一個數組,
實現函式init()初始化陣列、
實現empty()清空陣列、
實現reverse()函式完成陣列元素的逆置。
要求:自己設計函式的引數,返回值。
#include<stdio.h>
#include<string.h>
int init(int *arr)
{
int i = 0;
while (i < 10)
{
*(arr + i) = i;
i++;
}
return 0;
}
int empty(int *arr)
{
int i = 0;
while (i < 10)
{
memset((arr + i), 0, sizeof(arr));//將0依次賦值給佔用記憶體為sizeof(arr),地址為arr+i的變數中。函式原型:void * memset ( void * ptr, int value, size_t num );,
i++;
}
return 0;
}
int reverse(int *arr,int L)
{
int i = 0;
while (i < L/2)
{
*(arr + i) = (*(arr + i)) ^ (*(arr + 9 - i));
*(arr + 9 - i) = (*(arr + i)) ^ (*(arr + 9 - i));
*(arr + i) = (*(arr + i)) ^ (*(arr + 9 - i));
i++;
}
return 0;
}
int main()
{
int arr[10];
int i = 0;
init(arr);//初始化
printf("初始化結果。");
while (i < 10)
{
printf("%d", arr[i]);
i++;
}
empty(arr);//清空陣列
printf("\n陣列清空結果。");
i = 0;
while (i < 10)
{
printf("%d", arr[i]);
i++;
}
init(arr);//初始化
int L = sizeof(arr) / sizeof(arr[0]);
reverse(arr, L);//元素倒序
printf("\n元素倒序結果結果:");
i = 0;
while (i < 10)
{
printf("%d", arr[i]);
i++;
}
printf("\n");
return 0;
}
PS:關於陣列,可以看我的另一篇部落格《陣列初識總結》,講解了陣列入門問題,連結:這裡寫連結內容
4.猜數字。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int number = 57;
int num = 0;
start: scanf("%d", &num);
if (num == number)
{
printf("猜對了!\n");
}
else if (num > number)
{
printf("大了,重新猜一下吧。\n");
goto start;
}
else
{
printf("小了,重新猜一下吧。\n");
goto start;
}
return 0;
}
5.判斷一個數是否是素數
#include<stdio.h>
#include<math.h>
//返回-1,輸入有誤
//返回1,是素數
//返回因子,不是素數
int IsPrimeNumber(int number)
{
if (number <= 1)//質數是大於1的自然數
return -1;
int rooting = (int)sqrt(number);
for (int i = 2; i <= rooting; ++i)
{
if (number%i == 0)
return i;
}
return 1;
}
int main()
{
int number = 0;
int result = 0;
while (1)
{
printf("Please input a number : ");
scanf("%d", &number);
result = IsPrimeNumber(number);
if (result == -1)
printf("Input invalid.\n");
else if (result == 1)
printf("%d is primer.\n", number);
else
printf("%d isn't primer,factor is %d.\n", number,result);
}
return 0;
}
最後:歡迎各位前來評論,提問……..