用C语言,在main()主函数中实现由键盘输入2022年中某一天的月份及日期,调用computDay(int month,int day)函数,传入输入的月份及日期,打印输出这天是2022年中的第几天
时间: 2024-03-11 07:48:26 浏览: 83
以下是实现的C语言代码:
```c
#include <stdio.h>
int computDay(int month, int day);
int main() {
int month, day, dayOfYear;
printf("请输入月份和日期(以空格分隔):");
scanf("%d %d", &month, &day);
dayOfYear = computDay(month, day);
printf("2022年%d月%d日是2022年中的第%d天\n", month, day, dayOfYear);
return 0;
}
int computDay(int month, int day) {
int days[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
int dayOfYear = days[month-1] + day;
return dayOfYear;
}
```
上述代码中,`main()`函数中通过`scanf()`函数从键盘输入一个月份和日期,然后调用`computDay()`函数计算这一天是2022年中的第几天,并将结果打印输出。`computDay()`函数中使用一个数组`days`来存储每个月份前面的天数,然后计算出输入的月份和日期对应的天数。注意,这里的`days`数组中的数值都是2022年的天数,因为我们要计算的是2022年中的第几天。
相关问题
c语言输入某年某月某日,判断这一天是这一年的第几天 [要求:函数Day使用数组实现上述功能;主函数输入数据并调用函数Day,输出结果。]
以下是使用C语言实现的代码,可以输入某年某月某日,判断这一天是这一年的第几天:
```c
#include <stdio.h>
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1; // 是闰年
} else {
return 0; // 不是闰年
}
}
int Day(int year, int month, int day) {
int daysInMonth[] = {0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int totalDays = 0;
// 计算前几个月的天数
for (int i = 1; i < month; i++) {
totalDays += daysInMonth[i];
}
// 如果是闰年且输入月份大于2月,则需考虑多加一天
if (isLeapYear(year) && month > 2) {
totalDays += 1;
}
// 加上输入的天数
totalDays += day;
return totalDays;
}
int main() {
int year, month, day;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printf("请输入日期:");
scanf("%d", &day);
int result = Day(year, month, day);
printf("这一天是这一年的第%d天\n", result);
return 0;
}
```
输入某一年的第几天,计算并输出它是这一年的几月几日。在主函数输入和输出,编写函数void MonthDay(int year,int yearDay,int *pMonth,int *pDay)计算几月几日。 【输入形式】年和总天数 【输出形式】以-隔开的年、月、日 【样例输入】2000 61 【样例输出】2000-3-1用c语言编写
以下是实现该功能的代码:
```c
#include <stdio.h>
void MonthDay(int year, int yearDay, int *pMonth, int *pDay);
int main() {
int year, yearDay, month, day;
scanf("%d %d", &year, &yearDay);
MonthDay(year, yearDay, &month, &day);
printf("%d-%d-%d", year, month, day);
return 0;
}
void MonthDay(int year, int yearDay, int *pMonth, int *pDay) {
int leapYear, i;
int monthDays[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { // 判断是否为闰年
leapYear = 1;
monthDays[2] = 29;
} else {
leapYear = 0;
}
for (i = 1; i <= 12; i++) {
if (yearDay <= monthDays[i]) {
*pMonth = i;
*pDay = yearDay;
break;
} else {
yearDay -= monthDays[i];
if (i == 2 && leapYear) {
yearDay--;
}
}
}
}
```
首先在主函数中输入年和总天数,然后调用函数 MonthDay 计算出对应的月份和日期,最后在主函数中输出。
函数 MonthDay 中首先判断该年是否为闰年,然后根据每个月的天数进行遍历,直到找到对应的月份和日期为止。需要注意的是,如果是闰年的二月份,需要将天数减一。
输出时需要以 - 隔开年、月、日。
阅读全文