关于C中判断润年代码

#include<stdio.h>intmain(){intyear,leap=0;printf("pleaseinputyear\n");scanf("%d",&yea... #include<stdio.h>
int main()
{
int year,leap=0;
printf("please input year\n");
scanf("%d",&year);
if(year%4==0)
if(year%100==0)
{if(year%400==0) leap=1;}
else leap=1;
if(leap) printf("%d is ",year);
else printf("%d is not ",year);
printf("leap year\n");
return 0;
}

这个是源程序,我不懂为什么year%400那排还要加个花括号,如果不加花括号会怎么样?本人刚刚入门C,请解答的详细点,谢谢!
展开
 我来答
灏晨0700
2014-11-15 · TA获得超过273个赞
知道答主
回答量:117
采纳率:100%
帮助的人:158万
展开全部
关于闰年的判断有多种情况(1)能被4整除且不能被100整除的为闰年
(2)能被400整除的是闰年。
所以应该写成:
#include <stdio.h>
int main()
{
int year=0;
scanf("%d",&year);
if((year%4==0&&year%1!=0)||(year%400==0))
printf("是闰年");
else
printf("不是闰年");
return 0;
}
有问题继续问
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
Yuqi_Tan

推荐于2016-02-04 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3483万
展开全部
因为这是一种嵌套关系和c语言中的规定所致,此处必须加花括号。
C语言中规定,如果出现if嵌套,又没有指明哪一个if与else是一对,则else往前寻找最近的一个成为一对。
如果把花括号去掉,那么else就与{if(year%400==0) leap=1;}中的if组合成了一对,显然就不能得到正确的结果。

如同题目中一样,给后面一个if加上花括号,{if(year%400==0) leap=1;},就说明了这个if语句已经完成了,后面再也不会有else了。那个else就与前面一个if(year%100==0)中的if组合成一对,就得到正确的结果了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式