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

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

我这个错误在哪里啊??求解答 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 回答

#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://img1.sycdn.imooc.com//58312bd40001acf508060568.jpg

0 回复 有任何疑惑可以回复我~
#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; 
}

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

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

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

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

南日

而实际的结果应该只是day。没有那个31.
2016-11-03 回复 有任何疑惑可以回复我~

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

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

举报

0/150
提交
取消

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

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