c语言闰年计算过程中的问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 12:20:52
#include <stdio.h>
void main()
{
int year,leap;
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;

if(leap)/* 为什么这里的leap改为leap=1就不能呢??*/
printf("%d year is a leap year\n",year);
else
printf("%d year is not a leap year\n",year);

}

if(leap=1)//leap=1是赋值语句,条件永远成立;
if(leap==1)//leap==1是条件判断,注意区别

if(leap)/* 为什么这里的leap改为leap=1就不能呢??*/

leap=1 是赋值

if(leap==1) 与 if(leap) 等价

leap=1是一个赋值语句,不能出现在if()中,应该该为:leap==1