活动介绍

编写一个函数,对于给定的公历年月日,计算出其是星期几,并判断该年份是否为闰年。要求函数的返回值为第5题中的字符串(可直接调用第5题中的函数),是否为闰年以指针形式从形参传递给实参。char * getweek(int year,int mon,int day,int *pleap)

时间: 2024-03-12 17:43:04 浏览: 122
好的,以下是函数的实现: ```c #include <stdio.h> char * getweek(int year, int mon, int day, int *pleap) { int i, sum = 0; char *week[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { *pleap = 1; month[1] = 29; } else { *pleap = 0; } for (i = 0; i < mon - 1; i++) { sum += month[i]; } sum += day; return week[(year - 1) % 7 + sum % 7]; } int main() { int year, mon, day, leap; char *week; printf("Please input year, month and day:\n"); scanf("%d%d%d", &year, &mon, &day); week = getweek(year, mon, day, &leap); printf("The date is %s, and the year is %s leap year.\n", week, leap == 1 ? "a" : "not a"); return 0; } ``` 函数 `getweek` 接收四个参数,分别是年月日以及一个指向整型变量的指针,用于传递是否为闰年的信息。函数内部使用一个名为 `week` 的字符串数组来表示一周的七天,以及一个名为 `month` 的整型数组来表示每个月的天数。如果给定的年份是闰年,则将二月份的天数设为 29。然后,函数将给定日期转化为该年份的第几天,并通过计算该年份的第一天是星期几来推算出该日期是星期几。最后将星期几的字符串返回即可。 在 `main` 函数中,我们先从用户输入中获取年月日三个参数,然后调用 `getweek` 函数计算出星期几以及是否为闰年,最后将结果输出。
阅读全文

相关推荐