满意答案
ukhgy3558
2019.03.21
采纳率:50% 等级:11
已帮助:5894人
cat ex1.c
/*
程序分析:以3月5日为例,应该先把前两个月的加起来,
然后再加上5天即本年的第几天,特殊情况,闰年且输入
月份大于3时需考虑多加一天。
*/
#include
int main(){
int day, month, year, sum, leap;
printf("\nplease input year,month,day\n");
scanf("%d%d%d",&year,&month,&day);
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;
default:printf("data error!\n");break;
}
sum = sum + day; //再加上某天的天数
if(year%400==0||(year%4==0&&year%100!=0)){ //判断是不是闰年
leap = 1;
}else{
leap = 0;
}
if(leap == 1&&month > 2){ //如果是闰年且月份大于2,总数加1天
sum++;
}
printf("It is the %dth day.\n",sum);
}
./ex
please input year,month,day
2019 3 21
It is the 80th day.
00分享举报