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

这题我已经求出来了,所以老师才让我们更进一步,出了这题

2004-07-23 21:57
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:13
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

可惜你的那个关于判断闰年的算法不对阿,比如1800 可以被4 整除, 它是闰年吗? 回答是: 不是。

所以你的程序上来就不对了。

请你改正你的程序。


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-07-25 20:04
badmen
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-7-1
收藏
得分:0 

我知道那样判断闰年不是正确的公式,可如果是这样

if (year%4==0 && year%100!=0 || year%400==0)

进行判断也不是完全正确,我不知怎么理解这个一直使用了这么久的公式,为什么也会出错。使用这个公式,输入2000年,得出的判断是2000年不是闰年。所以我才没改我的代码。

2004-07-25 23:37
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

你的上面的那个表达式是不对的,我在程序中不是这么写的,你在仔细看看。

下面的是真确的写法:

bool isLeapYear = (year%4 == 0) && ((year%100 != 0) || (year%400) == 0);


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-07-25 23:50
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

这样你知道如何判断闰年了, 也就是说,如果给你一个年份,你可以判断出它是否为闰年,如果为闰年那么那年有366 天,如果不是, 那么那年有365 天。

现在给你出第二题,请你写一程序告诉我某一年的第一天到今天(2004.07.25)一共有几天?


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-07-25 23:58
badmen
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-7-1
收藏
得分:0 

那一条语句是我们书本上的。

你的这个:bool isLeapYear是一个数组,还是一个函数或者变量?我一直没看明白。

2004-07-26 22:10
badmen
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-7-1
收藏
得分:0 
你出的这一题首先判断所给的这一年是否是闰年,如是,那就是366天,否就是365天,然后再判断这一年到2004年相差几年,这几年之中有几个闰年,这样就可以对这些年进行求和n*365+m*366,之后再计算出2004年1月1日到7月25日的天数之和,最后再把两者相加。你看我的思路对吗?
2004-07-26 22:26
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
思路对了,现在就写代码把

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-07-27 01:32
taurusivy
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-8-8
收藏
得分:0 
斑竹的式子有点问题吧
以下是引用kai在2004-07-25 23:50:51的发言:

你的上面的那个表达式是不对的,我在程序中不是这么写的,你在仔细看看。

下面的是真确的写法:

bool isLeapYear = (year%4 == 0) && ((year%100 != 0) || (year%400) == 0);

2004-08-08 20:03
快速回复:本周的新作业
数据加载中...
 
   



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

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