c语言输入某年某月某日,判断这一天是这一年的第几天?程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。 **输入格式要求:"%d,%d,%d" 提示信息:"\nplease input year,month,day\n" **输出格式要求:"It is the %dth day." "data error" 程序运行示例如下: please input year,month,day 2012,11,22 It is the 327th day.
时间: 2024-02-16 19:59:52 浏览: 71
以下是实现该功能的 C 语言代码:
```c
#include <stdio.h>
int main() {
int year, month, day, days = 0;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d", &year, &month, &day);
if (year < 0 || month < 1 || month > 12 || day < 1 || day > 31) {
printf("data error");
return 0;
}
// 计算前两个月的天数
switch (month - 1) {
case 11: days += 30;
case 10: days += 31;
case 9: days += 30;
case 8: days += 31;
case 7: days += 31;
case 6: days += 30;
case 5: days += 31;
case 4: days += 30;
case 3: days += 31;
case 2: {
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
days += 29; // 闰年2月29天
} else {
days += 28; // 平年2月28天
}
}
case 1: days += 31;
}
// 加上本月的天数
days += day;
// 判断是否为闰年且输入月份大于2,需要加1天
if ((year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) && month > 2) {
days += 1;
}
printf("It is the %dth day.", days);
return 0;
}
```
运行示例:
```
please input year,month,day
2012,11,22
It is the 327th day.
```
阅读全文