c语言的的问题

来源:百度知道 编辑:UC知道 时间:2024/07/12 14:07:53
#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);

这段c语言中是求闰年的,后面的leap=1是赋予leap真的意思,那
(year%100==0)和(year%400==0)中的零和%是什么意思?今天刚看教程,所有问题有点菜菜的...

#define isleap(y) ((((y)%4)==0 && ((y)%100!=0 || ((y)%400)==0

直接使用这个宏,一样可以计算闰年。%是求模运算符,优先级高于==
year%100==0意思是如果year能被100整除。

year%100==0是判断能不能被100整除
year%400==0当然是判断能不能被400整除

%是求模的意思,也就是取余。
if (year % 100 == 0)就是判断year是否为100的整数倍。

%是求余的意思。
if(year%100==0) 这句话 就是判断 年份year能否被100整除

%是求余的意思,就是整除以后,得到余数,比如5除以二余数为1,那么5%2==1,同理7%5==2,