Posted on 2011-09-09 02:11
kalvinyZhang 阅读(96)
评论(0) 编辑 收藏 引用 所属分类:
C语言练习
题目:输入某年某月某日,判断这一天是这一年的第几天?
#include <stdio.h>
int main()
{
int i, day, month, year, sum, leap;
leap = 0;
sum = 0;
printf("Please input year, month, day\n");
scanf("%d %d %d", &year, &month, &day);
char s[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
for (i = 0; i < month-1; i++)
sum += s[i];
sum += day;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
leap = 1;
// printf("%d\n", year);
}
if (leap) {
if (month > 2) {
sum += 1;
printf("The day is the %dth day\n", sum);
}
else
printf("The day is the %dth day\n", sum);
}
else {
if (month == 2) {
if (day > 28)
printf("The wrong input\n");
else
printf("The day is the %dth day\n", sum);
}
else
printf("The day is the %dth day\n", sum);
}
return 0;
} //代码烦琐,很需要优化,问题是解决了,但是答案不尽人意