该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。 8 G\?!^
ug1G=ER +
2.程序源代码: [SSoh?J
main() ]Xq4S/7l
{ A[YZ]k3
int day,month,year,sum,leap; =+j]Tm@ Y
printf("\nplease input year,month,day\n"); ;cu5q52
scanf("%d,%d,%d",&year,&month,&day); >Q35 ]$
switch(month)/*先计算某月以前月份的总天数*/ bYQ.5N,5r
{ A|0-G Q
case 1:sum=0;break; }s7^z%((
case 2:sum=31;break; DNoDJ
case 3:sum=59;break; x_
case 4:sum=90;break; O$@PX"Egj
case 5:sum=120;break; fpQ97N|
case 6:sum=151;break; P>"2xc9
case 7:sum=181;break; cPa)hE$-p
case 8:sum=212;break; i* U0n
case 9:sum=243;break; U&Fzrsbb
case 10:sum=273;break; }l(z/{:fB
case 11:sum=304;break; j8 %{Gjd
case 12:sum=334;break; Pfm@md
default:printf("data error");break; YOE'1~P
} bM?jM"Sfb
sum=sum+day; /*再加上某天的天数*/ Lr;qZ[Eh)
if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ 2vcB>haYq
leap=1; }{,[ ]g
else $G$# %/-
leap=0; "V*v-c SS
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ t6[ko];P
sum++; `O@)~>t+
printf("It is the %dth day.",sum);} :%Onq>Y2J
t