啥功能啊?是算闰年吗?
这个if层次有点问题啊,if(x%400==0)的情况,不能放在前面两个if里面
int IF(int x)
{
if(x%400 == 0)
return x;
if(x%4==0 && x%100 != 0)
return x;
return 0;
}
int main()
{
int a = 1900;
while(a<=2000)
{
if(IF(a) != 0)
printf("%d\n",a);
a++;
}
}
if (IF(a)> 1000)
printf("%d\n",IF(a));
选择性输出
该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据您提供的代码,可能是由于在函数 IF 中打印了额外的数字,导致输出结果不符合预期。
建议您将 IF 函数中的打印语句注释掉,只返回计算出的结果。然后在 main 函数中调用 IF 函数,将返回值作为要打印的结果即可。例如:
#include <stdio.h>
#include <math.h>
int IF(int x);
int main() {
int a = 1900;
while (a <= 2000) {
printf("%d\n", IF(a));
a = a + 1;
}
return 0;
}
int IF(int x) {
int s;
if (x % 4 == 0) {
if (x % 100 == 0) {
if (x % 400 == 0) {
s = x;
} else {
s = -1;
}
} else {
s = x;
}
} else {
s = -1;
}
return s;
}
这样输出的结果就只有符合条件的年份,不会出现额外的数字了。