我自己打的代码,哪里错了,求救

来源:4-17 switch与if语句的应用

艾弗里高

2017-02-03 22:32

#include <stdio.h>

int main() 

    /* 定义需要计算的日期 */

    int year = 2008;

    int month = 8;

    int day = 8;

    int num;

    int sum=0;

    int i=1;

    while(i<month)

    {

        switch

        {

            case 1:num=day;break;

            case 2:num=31;break;

            case 3:

            if(year%4==0)

            {

              num=29;break;

            }

            else

            {

              num=28;break;

            }

            case 4:num=31;break;

            case 5:num=30;break;

            case 6:num=31;break;

            case 7:num=30;break;

            case 8:num=31;break;

            case 9:num=31;break;

            case 10:num=30;break;

            case 11:num=31;break;

            case 12:num=30;break;

            }

            sum+=num;

            i++;

            }

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

            return 0;


写回答 关注

3回答

  • 囖囖囖囖咯
    2017-02-03 23:41:33
    已采纳

    num+=30;

    num+=31;

    要和之前的num加起来

    还有case1,2...12的顺序错了

    应该啊12....到1

    旧时风染 回复囖囖囖囖咯

    懂了谢谢

    2017-02-04 17:02:09

    共 5 条回复 >

  • 囖囖囖囖咯
    2017-02-05 11:27:25

    不会意思,之前没看清楚

    我现在在VC6上操作了一遍

    #include <stdio.h>
    int main()
    {
     /* 定义需要计算的日期 */
     int year = 2008;
     int month = 8;
     int day = 8;
     int num;
     int sum=0;
     int i=1;
     while(i<month){
     switch(i){
     case 1:num=31;break;
     case 2:
      if(year%4==0){
     num=29;break;}
     else{
     num=28;break;}
     case 3:num=31;break;
     case 4:num=30;break;
     case 5:num=31;break;
     case 6:num=30;break;
     case 7:num=31;break;
     case 8:num=31;break;
     case 9:num=30;break;
     case 10:num=31;break;
     case 11:num=30;break;
     case 12:num=31;break;
     }
     sum=num+sum;
     i++;
     }
     printf("2008年8月8日是该年的%d天", sum+day);
     return 0;
    }


    按照你的思路

    这个是正确的

    艾弗里高

    我是错在了最后的分号是中文分号,而我看不懂他的解释,最后我百度了解释就过了

    2017-02-05 23:18:29

    共 2 条回复 >

  • 艾弗里高
    2017-02-04 09:28:15

    从12到1的那种我过了,就用了switch语句。现在我不懂的是怎么改成while语句


C语言入门

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

926021 学习 · 20793 问题

查看课程

相似问题