这是我的代码,但是由于某种原因,它没有在编译器中打印任何内容。请帮忙! :(
#include <stdio.h>
int leapYear (void);
int leapYear ()
{
printf("Please enter a year: ");
scanf("%d", &year);
if ((year % 400) == 0)
{
printf("%d is a leap year \n", year);
}
else
printf("%d is not a leap year \n", year);
return (year);
}
int main()
{
int leapYear();
}
答案 0 :(得分:1)
#include <stdio.h>
#include <assert.h>
int isleap(int year)
{
assert(year > 0 && "isleap: Year must be positive");
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
int main(void)
{
int isleap(int); // declare the function, naming the types of the arguments
printf("%s\n", isleap(2002) ? "Leap year" : "Not leap year");
}
您的leap年算法是错误的。我已经修改了。如果满足以下至少一项条件,那么一年就是is年:
从侧面讲,最好将算法和结果显示在两个不同的函数中分开。 isleap
只是告诉我们给定的一年是否飞跃。 main
依靠isleap
对此进行报告,然后打印一条适当的消息。这使我们的程序更易于(人类)阅读和扩展。