用leap的真假判断是否闰年问题。
#include <stdio.h>void main()
{
int year,leap;
printf("请输入年份:\n");
scanf("%d",&year);
if(year%400==0) leap=1;
else if(year%4==0)
{
if (year%100==0) leap=0;
else leap=1;
}
else leap=0;
if (leap=1) printf("闰年\n");
else printf("不是闰年\n");
}
输入2100输出是闰年,但是明显2100不是闰年。求错误在哪里。请大神指教。
还有一个程序自我感觉他们错在了一处,但是我还是想不明白,同样求解释:
#include <stdio.h>
void main()
{
int year,leap;
printf("请输入年份:\n");
scanf("%d",&year);
if(year%4==0)
{
if(year%100!=0) leap=1;
else leap=0;
}
else if(year%400==1)leap=1;
else leap=0;
if (leap=1) printf("闰年\n");
else printf("不是闰年\n");
}
自我感觉加红的部分是前面那个if句子的结果,就是说和前面的if(year%4==0)是与的关系。请求详细解释! 谢谢了!