mooc中習題--計算天數
阿新 • • 發佈:2018-11-22
7-19 計算天數(15 分)
本題要求編寫程式計算某年某月某日是該年中的第幾天。
輸入格式:
輸入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)給出日期。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。閏年的2月有29天。
輸出格式:
在一行輸出日期是該年中的第幾天。
輸入樣例1:
2009/03/02
輸出樣例1:
61
輸入樣例2:
2000/03/02
輸出樣例2:
62
我的程式:
#include<stdio.h>
int main()
{
int year,month,day;
scanf("%d/%d/%d",&year,&month,&day);
int Jan=31;
int Feb=28;
int Mar=31;
int Api=30;
int May=31;
int Jun=30;
int Jul=31;
int Aug=31;
int Spe=30;
int Oct=31;
int Nov=30;
int Dec=31;
//是否是閏年
int a,b;
a=year%4;
b=year%100;
int c=year/400;
if(((a==0)&&(b!=0))||c==0)
{Feb++;
}
//
int ordinal;
switch(month){
case 1:
ordinal=day;
break;
case 2:
ordinal=Jan+day;
break;
case 3:
ordinal=Jan+Feb+day;
break;
case 4:
ordinal=day+Feb+Mar+Jan;
break;
case 5:
ordinal=day+Feb+Mar+Api+Jan;
break;
case 6:
ordinal=day+Jan+Feb+Mar+Api+May;
break;
case 7:
ordinal=day+Jan+Feb+Mar+Api+May+Jun;
break;
case 8:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul;
break;
case 9:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug;
break;
case 10:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug+Spe;
break;
case 11:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug+Spe+Oct;
break;
default:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug+Spe+Oct+Nov;
break;
}printf("%d\n",ordinal);
return 0;
}
本題要求編寫程式計算某年某月某日是該年中的第幾天。
輸入格式:
輸入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)給出日期。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。閏年的2月有29天。
輸出格式:
在一行輸出日期是該年中的第幾天。
輸入樣例1:
2009/03/02
輸出樣例1:
61
輸入樣例2:
2000/03/02
輸出樣例2:
62
我的程式:
#include<stdio.h>
int main()
{
scanf("%d/%d/%d",&year,&month,&day);
int Jan=31;
int Feb=28;
int Mar=31;
int Api=30;
int May=31;
int Jun=30;
int Jul=31;
int Aug=31;
int Spe=30;
int Oct=31;
int Nov=30;
int Dec=31;
//是否是閏年
int a,b;
a=year%4;
b=year%100;
int c=year/400;
if(((a==0)&&(b!=0))||c==0)
}
//
int ordinal;
switch(month){
case 1:
ordinal=day;
break;
case 2:
ordinal=Jan+day;
break;
case 3:
ordinal=Jan+Feb+day;
break;
case 4:
ordinal=day+Feb+Mar+Jan;
break;
case 5:
ordinal=day+Feb+Mar+Api+Jan;
break;
case 6:
ordinal=day+Jan+Feb+Mar+Api+May;
case 7:
ordinal=day+Jan+Feb+Mar+Api+May+Jun;
break;
case 8:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul;
break;
case 9:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug;
break;
case 10:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug+Spe;
break;
case 11:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug+Spe+Oct;
break;
default:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug+Spe+Oct+Nov;
break;
}printf("%d\n",ordinal);
return 0;
}