A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
      情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum0;break;
case 2:sum31;break;
case 3:sum59;break;
case 4:sum90;break;
case 5:sum120;break;
case 6:sum151;break;
case 7:sum181;break;
case 8:sum212;break;
case 9:sum243;break;
case 10:sum273;break;
case 11:sum304;break;
case 12:sum334;break;
default:printf("data error");break;
}
sumsum+day;  /*再加上某天的天数*/
if(year%4000||(year%40&&year%100!0))/*判断是不是闰年*/
  leap1;
else
  leap0;
if(leap1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum);}


感觉这么写有点水,求高贵的思路

12 个回复

倒序浏览
难度有点大啊
回复 使用道具 举报

一般吧。。就是会绕一下
回复 使用道具 举报
還有更簡單的做法 想想看
回复 使用道具 举报
Kuhoku 发表于 2015-8-24 16:42
還有更簡單的做法 想想看

版主赐点黑马币和技术分 吧   都快急死了
回复 使用道具 举报
就来 看看 不说话
回复 使用道具 举报
有总比没有强!
回复 使用道具 举报
用数组,一种闰年数组,一种普通年数组,利用数组下标
回复 使用道具 举报
chensc 金牌黑马 2015-8-24 21:18:29
9#
学习学习!
回复 使用道具 举报
switch(_month)         {                 case 12: daynum += 30;                 case 11: daynum += 31;                 case 10: daynum += 30;                 case 9: daynum += 31;                 case 8: daynum += 31;                 case 7: daynum += 30;                 case 6: daynum += 31;                 case 5: daynum += 30;                 case 4: daynum += 31;                 case 3: daynum += 28;                 case 2: daynum += 31;                 case 1: daynum += 0;break;         } 这样计算前几个月的天数不用都计算了
回复 使用道具 举报
再来!!!!!!!!!!!
回复 使用道具 举报
过来看看一起学习下
回复 使用道具 举报
倒是看过一个和题目相反的程序。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马