| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1842 人关注过本帖
标题:新手习作,遇上问题,请高手指点
取消只看楼主 加入收藏
badmen
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-7-1
收藏
 问题点数:0 回复次数:5 
新手习作,遇上问题,请高手指点

我刚学C没多久,老师给布置了这样一道作业。

判断平年还是闰年。

要求:1、输入年份时,要校验年份是否在100<year<9999之间,如若不在,直接否定。

   2、如果是闰年,输入二月,给出正确的天数;输入其他月份也要给出正确的天数。

   3、如果是平年,输入二月,给出正确的天数。

我编完了所有的代码,在单个块运行时,只有警告,没错,可一汇总,就出现一个else的错误,我对if...else语句理解不是很透,我不知问题出在哪?请高手指点一下。

#include <stdio.h> void main() { int year,month; month=1; month=3; month=5; month=7; month=8; month=10; month=12; month=2; month=4; month=6; month=9; month=11; printf("输入一个年份:\n"); scanf("%d",&year);

if (100<year && year<9999) if(year%4==0) printf("这是闰年\n"); else printf("这是平年\n"); printf("输入一个月份:\n"); scanf("%d",&month); if (0<month && month<12) if (month==1 || month>2) if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 ||month==12) printf("month=31 \n",month); if (month==2 && year%4==0) printf("month=29 \n",month); else printf("month=28 \n",month); else printf("month=30 \n",month);

}

搜索更多相关主题的帖子: 习作 
2004-07-01 12:42
badmen
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-7-1
收藏
得分:0 

我自己也知道,上面那一长串赋值没用,发帖时,忘记删掉了。

我对IF...ELSE一直就理解不透。请高手指出我的不足

2004-07-01 20:43
badmen
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-7-1
收藏
得分:0 

请问,在“isLeapYear = (year % 4 == 0) && ((year % 100 != 0) || (year % 400) == 0);”中,“(year % 100 != 0)”和“(year % 400) == 0)”是作什么的,为什么要分别模上“100”和“400”?

2004-07-02 21:21
badmen
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-7-1
收藏
得分:0 

在看了大家给的提示和代码,我结合了自己现在学到的知识,在反复画流程图后,重新的写了一段代码,请大家批评不足。

#include <stdio.h> void main() { int year,month; printf("输入一个年份:\n"); scanf("%d",&year); if (100<year && year<9999) { if(year%4==0) printf("这是闰年\n"); else printf("这是平年\n"); printf("输入一个月份:\n"); scanf("%d",&month); if (month>0 && month<13) { if (month==2) if(year%4==0) printf("本月为29 \n"); else printf("本月为28 \n"); if ((month>0 && month!=2) || month>2) if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 ||month==12) printf("本月为31 \n",month); else printf("本月为30 \n",month); } else printf("月份有误。\n"); } else printf("年份输入有误。\n"); }

2004-07-02 23:29
badmen
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-7-1
收藏
得分:0 
那如何去判断月份是否超过或小于呢?
2004-07-03 21:07
badmen
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-7-1
收藏
得分:0 

#include <stdio.h> void main() { int year,month; printf("输入一个年份:\n"); scanf("%d",&year); if (100<year && year<9999) { if(year%4==0) printf("这是闰年\n"); else printf("这是平年\n"); printf("输入一个月份:\n"); scanf("%d",&month); if (month>0 && month<13) { if (month==2) if(year%4==0) printf("本月为29 \n"); else printf("本月为28 \n"); if ((month>0 && month!=2) || month>2) if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 ||month==12) printf("本月为31 \n",month); else printf("本月为30 \n",month); } else printf("月份有误。\n") } else printf("年份输入有误。\n"); }

[此贴子已经被作者于2004-07-23 22:12:31编辑过]

2004-07-23 22:07
快速回复:新手习作,遇上问题,请高手指点
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012974 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved