我这个错误在哪里啊??求解答

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

慕莱坞9615790

2016-11-02 17:38

我这个错误在哪里啊??求解答 int sum=0,tsh,i;      for(i=1;i<month;i++)    {        if (month=1||3||5||7||8||10||12)            {tsh=31;}        else if (month= 4||6||9||11)            {tsh=30;}        else            {tsh=((year%4==0)? 29:28);}        sum=sum+tsh;    }    sum=sum+day;

写回答 关注

4回答

  • 越飞越高
    2016-11-20 12:52:02

    #include <stdio.h>
    int main()
    {
        /* 定义需要计算的日期 */
        int year = 2008;
        int month = 8;
        int day = 8;
        /*
         * 请使用switch语句,if...else语句完成本题
         * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
         * 小编还是希望大家独立完成哦~
         */
        switch(month-1){
            case 12: day += 31;
            case 11: day += 30;
            case 10: day += 31;
            case 9:  day += 30;
            case 8:  day += 31;
            case 7:  day += 31;
            case 6:  day += 30;
            case 5:  day += 31;
            case 4:  day += 30;
            case 3:  day += 31;
            case 2:
            if(year%400==0||(year%4==0&&year%100!=0))
                day += 29;
            else
                day += 28;
            case 1:  day += 31;
        }
        printf("2008年8月8日是该年的第%d天\n",day);
     return 0;
    }

    http://img.mukewang.com/58312bd40001acf508060568.jpg

  • 慕莱坞9615790
    2016-11-03 10:59:42
    #include <stdio.h>
    int main() 
    {  
    int year = 2008; int month = 8; int day = 8; 
    int sum=0,tsh,i;      
    for(i=1;i<month;i++)    
        {        
            if (month=1||3||5||7||8||10||12)            
                {tsh=31;}        
            else if (month= 4||6||9||11)            
                {tsh=30;}        
            else            
                {tsh=((year%100!=0&&year%4==0||year%400==0)? 29:28);}        
            sum=sum+tsh;    
        }    
    sum=sum+day;
    return 0; 
    }

    不好意思,这是全部的内容。运行没有结果,是错误代码。

  • 南日
    2016-11-03 10:33:14

    多算了一个月,比如i等于1,进入你的循环以后,tsh取值为31,此时sum值为31+day。

    南日

    而实际的结果应该只是day。没有那个31.

    2016-11-03 10:34:10

    共 1 条回复 >

  • better_mooc
    2016-11-03 10:22:06

    你是最开始思路没有屡清楚吧。这个代码只是八月的天数加上八号的天数,所以最后结果是31+8=39。前面的几个月份的天数都还没加呢。

C语言入门

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

926221 学习 · 20797 问题

查看课程

相似问题