慕莱坞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;
#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;
}
#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; }
不好意思,这是全部的内容。运行没有结果,是错误代码。
多算了一个月,比如i等于1,进入你的循环以后,tsh取值为31,此时sum值为31+day。
你是最开始思路没有屡清楚吧。这个代码只是八月的天数加上八号的天数,所以最后结果是31+8=39。前面的几个月份的天数都还没加呢。
C语言入门
926221 学习 · 20797 问题
相似问题