题目:输入某年某月某日,判断这一天是这一年的第几天?
/*
题目:输入某年某月某日,判断这一天是这一年的第几天?
d,m,y,sum
*/
#include <stdio.h>
int main(void) {
int d,m,y,sum=0;
puts("请输入年月日,格式如:2020,1,20,不检测非法输入:");
scanf("%d,%d,%d", &y, &m, &d);
printf("%d年%d月%d日",y,m,d);
m = m - 1;
if (m == 0){
printf("是1月,第%d天",d);
return 0;
}
while (m>0) {
switch(m){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
sum = sum + 31;
break;
case 4:
case 6:
case 9:
case 11:
sum = sum + 30;
break;
case 2:
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
sum = sum + 29;
else
sum = sum + 28;
break;
}
m = m - 1;
}
printf("不是1月,本年第%d天",sum+d);
return 0;
}
也不知道做对了没有,试了几个是对的。逻辑上不一定严谨,但感觉比原例稍微好一点。总不至于几个月共几天都事先算好。那还算个P啊。