关于C语言编日历的一些问题

 我来答
徐佳悦少姿
2019-03-17 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:27%
帮助的人:876万
展开全部
首先,给你提个意见,统计星期几,不用从公元0年开始,一路递增到指定年来统计经过的天数,输个8000年,要做8000次循环,算法可简化为:
Year_days=year/4*(365*3+366)-(year%4==0?0:(4-(year%4))*365)
当输入非数字时,scanf对变量赋值将失败,即保留变量(Year)原来的值(初始化为0),即表示是输入显示为公元0年的日历(提问中说的是公元1年,应该是公元0年吧?),在你判断while(Year_Start
<
year)循环时自然不满足条件,即天数(Year_days)为0,明白了没有?
当输入大于32767时,八位二进制的整形数据的第一位变成1(表示是负数),则相当于负数以补码形式在内存中存储,即变量成为负数,在判断while(Year_Start
<
year)循环时自然不满足条件,即天数(Year_days)为0,所以结论同上。
只要在做统计天数前,在前面判断年份是否合法即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式