輸入month=18,結果不對
答案有個問題,就是month>12的時候,程序不是輸出“一年只有12個月哦”后就終止,而是繼續往下執行,最后輸出“一年只有12個月哦2008年18月8日是該年的第9天”,如何處理可以在month>12時輸出一年只有12個月哦,然后終止呢?求教
答案有個問題,就是month>12的時候,程序不是輸出“一年只有12個月哦”后就終止,而是繼續往下執行,最后輸出“一年只有12個月哦2008年18月8日是該年的第9天”,如何處理可以在month>12時輸出一年只有12個月哦,然后終止呢?求教
2015-12-30
舉報
2015-12-30
慘痛的教訓啊,需要寫代碼的回答我再也不會這么草率了,寫完一定要仔細檢查。
題主,代碼我重寫了,這次一定沒問題,嗯!
2015-12-30
goto只是一個玩笑罷了,雖然也能做,但是肯定會被批判一番;
題主想要的是可以輸出某月某日是一年當中的第幾天的程序,并且能對錯誤輸入有相應的反饋,那么我的答案如下;
有對月份的檢查,也有對日期的檢查。
2015-12-30
和我一起念,goto大法好!
2015-12-30
不對,switch里面的default:printf("一年只有12個月");break;只能跳出這個結構,下面的還會繼續執行,剛才試著改成這樣可以:
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨立完成哦~
? ? ?*/
? ? ? int sum,flag; ?
? ? ?if(month>0&&month<=12)
? ? ?{ ?
? ? ? ? ?switch(month)
? ? ? ?{
? ? ? ? case 1:sum=0;break;
? ? ? ? case 2:sum=31;break;
? ? ? ? case 3:sum=59;break;
? ? ? ? case 4:sum=90;break;
? ? ? ? case 5:sum=120;break;
? ? ? ? case 6:sum=151;break;
? ? ? ? case 7:sum=181;break;
? ? ? ? case 8:sum=212;break;
? ? ? ? case 9:sum=243;break;
? ? ? ? case 10:sum=273;break;
? ? ? ? case 11:sum=304;break;
? ? ? ? case 12:sum=334;break;
? ? ? ?}
? ? sum=sum+day;
? ? if(year%400==0||(year %4==0 && year%100!=0))
? ? { flag=1;}
? ? else
? ? {flag=0;}
? ? if(flag==1&&month>2)
? ? {sum++;}
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);
? ? ?}
? ? ?else?
? ? ?{printf("一年只有12個月哦");}
? ? return 0;?
? ??
}
2015-12-30
你有測試員的潛質
2015-12-30
default:
printf("一年只有12個月");
break;?