为了账号安全,请及时绑定邮箱和手机立即绑定

4-17 语句应用我的程序少了六十天

     int i=0;

     int sum=0;

    switch(month)

    {

    case 1: i=0;

    case 2:i=i+31;

    case 3:

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

    { i=i+29;}

    else

    { i=i+28;}

    case 4:i=i+31;

    case 5:i=i+30;

    case 6:i=i+31;

    case 7:i=i+30;

    case 8:i=i+31;

    case 9:i=i+31;

    case 10:i=i+30;

    case 11:i=i+31;

    case 12:i=i+30; break;}

    sum=i+day;

    printf("2008年8月8日是该年中的第%d天\n",sum);

return 0;

}

求大神教我哪错了,总是161天,少了六十天,怀疑一月二月没算上!

正在回答

4 回答

   case 从1到12,那么天数的计算就会计算8月到12月的天数

   case 从12到1,那么该计算就会计算从1月到8月的天数

0 回复 有任何疑惑可以回复我~

完美解决~

0 回复 有任何疑惑可以回复我~

倒过来就剩8天了···

0 回复 有任何疑惑可以回复我~

还是你的程序,你试一下调换case语句的执行顺序。。。

int i=0;

int sum0;

switch(month)

{

case 12:i=i+30;

 case 11:i=i+31;

case 10:i=i+30;

case 9:i=i+31;

 case 8:i=i+31;

 case 7:i=i+30;

 case 6:i=i+31;

 case 5:i=i+30;

 case 4:i=i+31;

 case 3:

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

    { i=i+29;}

    else

    { i=i+28;}

 case 2:i=i+31;

case 1: i=0;

break;}

    sum=i+day;

    printf("2008年8月8日是该年中的第%d天\n",sum);

return 0;

}

  



0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926263    人
  • 解答问题       20798    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

4-17 语句应用我的程序少了六十天

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信