mooc中习题--计算天数

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;
 } 

猜你喜欢

转载自blog.csdn.net/qq_40691051/article/details/79252437