c语言计算天数输入年月日计算其是该年第几天
时间: 2023-11-28 14:22:34 浏览: 106
好的,这是一个比较简单的问题。下面是一个 C 语言程序,可以根据用户输入的年月日计算该日期是该年的第几天:
```
#include <stdio.h>
int main()
{
int year, month, day, sum = 0, i;
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入年月日(格式:年 月 日):");
scanf("%d %d %d", &year, &month, &day);
// 判断是否为闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
days[1] = 29;
}
// 计算天数
for (i = 0; i < month - 1; i++)
{
sum += days[i];
}
sum += day;
printf("该日期是该年的第 %d 天\n", sum);
return 0;
}
```
程序中使用了一个数组 `days` 来存储每个月份的天数,闰年时将二月份的天数改为 29。然后使用一个循环计算出输入日期之前所有月份的天数之和,最后加上输入的日期即可得到该日期是该年的第几天。
相关问题
c语言计算天数按照yyyy/mm/dd格式输入年月日计算其是该年第几天
好的,这是一个比较简单的问题。下面是一个 C 语言程序,可以根据用户输入的年月日(格式:yyyy/mm/dd)计算该日期是该年的第几天:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char date[11];
int year, month, day, sum = 0, i;
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入年月日(格式:yyyy/mm/dd):");
scanf("%s", date);
// 使用字符串分割函数 strtok() 将年月日分割出来
char *p = strtok(date, "/");
year = atoi(p);
p = strtok(NULL, "/");
month = atoi(p);
p = strtok(NULL, "/");
day = atoi(p);
// 判断是否为闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
days[1] = 29;
}
// 计算天数
for (i = 0; i < month - 1; i++)
{
sum += days[i];
}
sum += day;
printf("该日期是该年的第 %d 天\n", sum);
return 0;
}
```
程序中使用了一个字符串 `date` 来存储用户输入的日期,然后使用字符串分割函数 `strtok()` 将年月日分割出来。接下来的计算方法与之前的程序相同。需要注意的是,由于使用了字符串分割函数,程序需要包含头文件 `stdlib.h` 和 `string.h`。
C语言代码输入年月日计算该日是当年第几天
好的,以下是 C 语言代码实现:
```
#include <stdio.h>
int main() {
int year, month, day;
int days[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; // 每个月的天数
int sum = 0;
printf("请输入年月日,格式为 yyyy mm dd:\n");
scanf("%d %d %d", &year, &month, &day);
// 判断闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days[2] = 29;
}
// 计算天数
for (int i = 1; i < month; i++) {
sum += days[i];
}
sum += day;
printf("%d 年 %d 月 %d 日是当年的第 %d 天。\n", year, month, day, sum);
return 0;
}
```
希望能对你有所帮助!
阅读全文