分类：电脑/网络-程序设计-C/C++
问题：判断是否闰年的程序三个问题高分悬赏这是一个某一年是否是闰年的程序 
这是一个某一年是否是闰年的，这个程序有几个地方不明白，望大家解答，谢谢……（问题在程序的下面）程序如下：#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这是一个某一年是否是闰年的，这个程序有几个地方不明白，望大家解答，谢谢……（问题在程序的下面）程序如下：#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)      printf("%d is",year); else      printf("%d is not",year); printf("a leap year.\n");}问题：1。给这个程序写出注释2。为什么year%4==0、year%100==0、year%400==0都要等于（==）0？不太明白3。判断是否是有的说 能被4整除，但不能被100整除，能被4整除，又能被400整除；   有的说能被4整除，但不能被100整除，能被100正处，但又能被400整除……  一个说能被100整除 一个说不能被100整除  哪一个对？？         有些复杂  谢谢大家作答 
回答：#include <std.h> void main() { int year,leap;    /*首先定义两个整型变量 year和leap*/scanf("%d",&year); /*用户输入一个年份，如1998*/if(year%4==0) /*如果这个年份能被4整除*/{ if(year%100==0) /*如果这个年份能被100整除*/{ if(year%400==0) /*如果这个年份能被400整除*/leap=1; /*将刚才定义过的leap设为1*/else leap=0; /*否则，即年份不能被400整除，将leap置为0*/} else leap=1; /*否则，即这个年份不能被100整除，是if(year%100==0)的否定情况*/} else leap=0; /*否则，即这个年份不能被4整除，把leap置为0*/if(leap) /*这里是判定，leap是否为真，leap=1时为真，leap=0时为假*/printf("%d is",year); /*如果为真，输出这个年份是闰年*/else printf("%d is not",year); /*如果为假，输出这个年份不是闰年*/printf("a leap year.\n"); }    运行结果：如： 1998 is not a leap year.（1998不是闰年）                  2004 is a leap year.(2004是闰年)year%4==0、year%100==0、year%400==0， 这里都用来判断你输入的年份能否被4. 100. 400所整除。＝＝0表示没有余数，即能被整除。闰年的条件：（1）能被4整除，但不能被100整除的年份都是闰年，如1996， 2004。（2）能被100整除，又能被400整除的年份是闰年，如1600，2000 .不符合以上两个条件的年份不是闰年。附：上面的判断条件中，if 和 else 一一对应的，而且else 只用来否定离它最近的那个if条件。