今天被一道题给卡了好久,题目是要输入年份和月份,然后输出这一年的这一月有多少天。这道题我之前是一个一个的把情况列出来,然后发现程序很重复,然后编译显示超时未通过。这让我很无语,感觉自己做了无用功。其时在敲代码的时候就隐隐察觉到了这个代码会超时。但是我却没有去想办法解决。而是为了省的动脑子而继续了错误的方式。之后就尝到了苦头,把代码全部清了然后重新写了一个新的代码:
#include<stdio.h>
int main()
{
int year,month,a;
scanf("%d%d",&year,&month);
if (year>0&&year<=1e6&&month>0&&month<=12){
if (month!=2){
if(month<=7){
switch(month%2){
case 1:printf("31"); break;
case 0:printf("30"); break;}}
else{
switch(month%2){
case 0:printf("31"); break;
case 1:printf("30"); break;}}
}
else{
if (year%400==0)
printf("29");
else
printf("28");}}
return 0;
}
吸取到这次的教训,下次写程序之前一定要先考虑清楚该怎么写再动手。