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;
}
最后:欢迎各位前来评论,提问……..