使用c语言完成任务:通过键盘输入年月日,输出该日是这一年的第多少天。
时间: 2024-05-13 14:20:59 浏览: 16
```c
#include <stdio.h>
int main() {
int year, month, day;
int days_of_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int i, days = 0;
printf("请输入年月日,格式为YYYY-MM-DD:");
scanf("%d-%d-%d", &year, &month, &day);
for (i = 0; i < month - 1; i++) {
days += days_of_month[i];
}
if (month > 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)) {
days++;
}
days += day;
printf("%d年%d月%d日是这一年的第%d天。\n", year, month, day, days);
return 0;
}
```
说明:
- 通过`scanf()`函数从键盘输入年月日,格式为`YYYY-MM-DD`。
- 利用数组`days_of_month`存储每个月的天数,然后累加前面几个月的天数,得到`days`。
- 如果当前月份大于2,并且该年是闰年,则二月份的天数加1。
- 最后加上当前日期的天数,输出结果。
相关问题
使用c语言中的switch语句,不使用数组;完成任务:通过键盘输入年月日,输出该日是这一年的第多少天。
```
#include<stdio.h>
int main(){
int year, month, day, days = 0;
printf("请输入年月日(格式:年 月 日):\n");
scanf("%d %d %d", &year, &month, &day);
switch(month){
case 12: days += 30;
case 11: days += 31;
case 10: days += 30;
case 9: days += 31;
case 8: days += 31;
case 7: days += 30;
case 6: days += 31;
case 5: days += 30;
case 4: days += 31;
case 3: days += 28;
if((year%4==0 && year%100!=0) || year%400==0){
days += 1;
}
case 2: days += 31;
case 1: days += day;
}
printf("%d年%d月%d日是这一年的第%d天。\n", year, month, day, days);
return 0;
}
```
通过键盘输入年月日输出该日是这一年的多少天,C语言switch
语句实现:
```c
#include <stdio.h>
int main() {
int year, month, day, days = 0;
printf("请输入年月日(格式:年 月 日):");
scanf("%d %d %d", &year, &month, &day);
switch(month) {
case 12: days += 30;
case 11: days += 31;
case 10: days += 30;
case 9: days += 31;
case 8: days += 31;
case 7: days += 30;
case 6: days += 31;
case 5: days += 30;
case 4: days += 31;
case 3:
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
days += 29;
else
days += 28;
case 2: days += 31;
case 1: days += day;
}
printf("该日是这一年的第 %d 天\n", days);
return 0;
}
```
在switch语句中,根据月份累加天数,注意闰年判断的条件。最后输出累加得到的天数即可。
示例输入输出:
```
请输入年月日(格式:年 月 日):2022 8 15
该日是这一年的第 227 天
```