c语言输入一个年月日输出是这一年的第几天
时间: 2023-05-29 13:02:47 浏览: 142
以下是一种实现方法:
```c
#include <stdio.h>
int main() {
int year, month, day;
printf("请输入年月日,以空格分隔:\n");
scanf("%d %d %d", &year, &month, &day);
// 每月的天数,注意二月根据是否为闰年而不同
int daysInMonth[] = {31, 28 + ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int dayOfYear = 0;
// 先累加该月之前的天数
for (int i = 0; i < month - 1; i++) {
dayOfYear += daysInMonth[i];
}
// 再加上当月的天数
dayOfYear += day;
printf("该日期在这一年的第 %d 天\n", dayOfYear);
return 0;
}
```
该程序首先在屏幕上提示用户输入年月日,然后使用 `scanf()` 函数读取用户输入的值。随后定义一个整型数组 `daysInMonth[]`,存储每个月的天数。注意二月的天数需要根据是否为闰年而不同。接下来使用一个循环累加该月之前的天数,最后加上当月的天数就可以得到这一年的第几天了。最后将结果输出到屏幕上。
相关问题
用C语言写输入年月日输出是这一年第几天的代码
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int year, month, day, days;
printf("请输入年月日,格式为yyyy-mm-dd: ");
scanf("%d-%d-%d", &year, &month, &day);
// 计算当月之前的总天数
days = day;
switch (month - 1) {
case 12: days += 31; // 12月
case 11: days += 30; // 11月
case 10: days += 31; // 10月
case 9: days += 30; // 9月
case 8: days += 31; // 8月
case 7: days += 31; // 7月
case 6: days += 30; // 6月
case 5: days += 31; // 5月
case 4: days += 30; // 4月
case 3: days += 31; // 3月
case 2: // 2月
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
days += 29;
} else {
days += 28;
}
case 1: days += 31; // 1月
}
// 如果是闰年且月份大于2月,总天数要加1
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
if (month > 2) {
days += 1;
}
}
printf("这一天是这一年的第%d天。\n", days);
return 0;
}
```
输入年月日,程序会计算当月之前的总天数,并根据是否是闰年来判断是否需要再加上1天。最终输出是这一年的第几天。
c语言switch函数输入一个年月日输出是这一年的第几天
以下是一个可能的解法:
```c
#include <stdio.h>
int main() {
int year, month, day;
printf("请输入年月日(格式:年-月-日):\n");
scanf("%d-%d-%d", &year, &month, &day);
// 计算该月前的天数和该月的天数
int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int sum = 0;
for (int i = 0; i < month - 1; i++) {
sum += days[i];
}
if (month > 2) {
// 闰年2月有29天
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
sum++;
}
}
sum += day;
// 输出结果
printf("%d年%d月%d日是%d年的第%d天\n", year, month, day, year, sum);
return 0;
}
```
注:此代码并没有对输入的日期是否合法进行校验。
阅读全文