1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,
创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。
#include "stdio.h"
void Tables(int max);//打印最大乘数为max的乘法表
int main()
{
int max = 0;
scanf("%d", &max);
Tables(max);
return 0;
}
void Tables(int max)
{
int i;
int j;
for (i = 1; i <= max; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%-2d ", i, j, i*j);
}
printf("\n");
}
}
2.
使用函数实现两个数的交换。
#include "stdio.h"
void Exchange(int* a, int* b);//交换两个数
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
printf("now:a=%d,b=%d\n", a, b);
Exchange(&a, &b);
printf("after:a=%d,b=%d\n", a, b);
return 0;
}
void Exchange(int* a, int* b)
{
int tmp = 0;
tmp = *a;
*a = *b;
*b = tmp;
}
用指针对地址进行传参,这样就可以在别的函数中改变值了。
3.
实现一个函数判断year是不是闰年。
#include "stdio.h"
int Leap(int year);//判断是不是闰年
int main()
{
int year = 0;
int count = 0;//标记
scanf("%d", &year);
count = Leap(year);
if (1 == count)
{
printf("%d是闰年\n", year);
}
else
{
printf("%d不是闰年\n", year);
}
return 0;
}
int Leap(int year)
{
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))//能被4整除且不能被100整除,或能被400整除的是闰年
{
return 1;//是闰年
}
else
{
return 0;//不是闰年
}
}
4.
创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。
#include "stdio.h"
void init(int str[], int len);//初始化数组
void reverse(int str[], int len);//将数组逆置
void empty(int str[], int len);//清空数组赋值为0
int main()
{
int str[5] = { 0 };
int i = 0;
int len = sizeof(str) / sizeof(str[0]);//获取数组长度,因为函数传参参数是数组时不能传递长度
init(str, len);
for (i = 0; i < len; i++)
{
printf("%d ", str[i]);
}
printf("\n");
reverse(str, len);
for (i = 0; i < len; i++)
{
printf("%d ", str[i]);
}
printf("\n");
empty(str, len);
for (i = 0; i < len; i++)
{
printf("%d ", str[i]);
}
printf("\n");
return 0;
}
void init(int str[], int len)
{
int i = 0;
for (i = 0; i < len; i++)
{
str[i] = i;
}
}
void reverse(int str[], int len)
{
int i = 0;
int tmp = 0;
for (i = 0; i < len/2; i++)
{
//str[i] and str[len - i - 1] change
tmp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = tmp;
}
}
void empty(int str[], int len)
{
int i = 0;
for (i = 0; i < len; i++)
{
str[i] = 0;
}
}
在做逆置的函数是开始少了-1导致数组越界。
5.实现一个函数,判断一个数是不是素数。
#include "stdio.h"
#include "math.h"
int Prime(int num);
int main()
{
int num = 0;
int count = 0;//标记
scanf("%d", &num);
count = Prime(num);
if (1 == count)
{
printf("%d是素数\n", num);
}
else
{
printf("%d不是素数\n", num);
}
return 0;
}
int Prime(int num)
{
int i = 0;
for (i = 2; i <= sqrt(num); i++)
{
if (num % i == 0)
{
return 0;//不是素数
}
}
return 1;//是素数
}