一.有关函数的练习
1.请写一个函数,输出100-200之间的素数
示例代码:
#include<stdio.h>
int prime(int n){
int j = 0;
for (j = 2; j < ; j++){
if (n%j == 0){
return 0;
}
return 1;
}
}
int main(void){
int i = 0;
for (i = 100; i <= 200; i++){
if (prime(i) == 1){
printf("%d ",i);
}
}
return 0;
}
程序目标:在main()函数中创建了一个for循环用来循环输出100-200的数字,并将输出的数字传入自定义函数 prime() 中,当返回值为1的时候则输出当前值,再来看到 prime() 函数中,声明了一个变量 j 当j<n的时候循环执行if语句中的语句 将n%j 结果如果等于0则代表当前数字不是素数,返回0,如果不满足if语句也就是(n%j !=0)则该数为素数返回1,这样我们就可以做到输出100-200的素数,如图所示:
提示:
for(j =2;j<sqrt(n);j++)
使用上述语句替换进 prime() 函数中for语句可以优化程序,sqrt()函数为开平方函数,在调用该函数前请进行预处理指令
#include<math.h>
2.请编写一个函数,判断 1000-2000 年中的闰年并输出
示例代码:
#include<stdio.h>
#include<windows.h>
int year(int n){
if ((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0)){
return 1;
}
return 0;
}
int main(void){
int i = 0;
for (i = 1000; i <= 2000; i++)
{
if (year(i) == 1){
printf("%d ",i);
}
}
system("pause");
return 0;
}
首先我们来复习一下是什么是闰年:能被4整除且不能被100整除或能被400整除的年份叫做闰年
我们再来看代码,main()函数中创建了一个for循环用来生成1000-2000的数字,将生成的数字传入自定义函数 year() 中,同样使用if语句来判断函数的返回值,如果返回值等于1则代表生成的年份为闰年,并调用printf()函数进行输出,看完main()函数部分我们再来看year()函数中的内容,根据上面对闰年的定义我们使用if()语句当 n%4 ==0 与 n%100 !=0 这两个条件同时成立的时候或者当 n%400 ==0 成立的时候则为闰年,函数返回1,否则函数返回0,这样子我们就做到了输出1000-2000年的闰年,如图所示:
2023/8/9
王起舟