c语言输出 n是学号后两位若n>31则n=n-31 已知2022年3月18日是星期五,要求运行后输入n,回车输出结果 例如:输入32输出2022年3月2日是星期三
时间: 2023-05-23 16:07:29 浏览: 100
以下是C语言代码:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
if (n > 31) {
n -= 31;
}
int days = (n - 1) * 7 + 3;
int year = 2022 + days / 366;
int remain_days = days % 366;
int month, day;
if (remain_days < 31) {
month = 1;
day = remain_days + 1;
} else if (remain_days < 59) {
month = 2;
day = remain_days - 30;
} else if (remain_days < 90) {
month = 3;
day = remain_days - 58;
} else if (remain_days < 120) {
month = 4;
day = remain_days - 89;
} else if (remain_days < 151) {
month = 5;
day = remain_days - 119;
} else if (remain_days < 181) {
month = 6;
day = remain_days - 150;
} else if (remain_days < 212) {
month = 7;
day = remain_days - 180;
} else if (remain_days < 243) {
month = 8;
day = remain_days - 211;
} else if (remain_days < 273) {
month = 9;
day = remain_days - 242;
} else if (remain_days < 304) {
month = 10;
day = remain_days - 272;
} else if (remain_days < 334) {
month = 11;
day = remain_days - 303;
} else {
month = 12;
day = remain_days - 333;
}
printf("%d年%d月%d日是", year, month, day);
int day_of_week = (days + 5) % 7;
switch (day_of_week) {
case 0:
printf("星期天");
break;
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
break;
case 4:
printf("星期四");
break;
case 5:
printf("星期五");
break;
case 6:
printf("星期六");
break;
}
return 0;
}
```
当输入n时,程序会先判断n是否大于31,如果大于31,则将n减去31。
然后,程序会根据n算出对应的日期。首先,算出2022年3月18日是当年的第77天。每增加一个学号,就增加7天。假设当前年份是2022年,那么每年的天数是366天(因为是闰年)。所以,当超过366天时,需要将年份加1,并把当前已经过的天数减去366。
通过算出对应的日期,接下来再计算对应是星期几。由于已知2022年3月18日是星期五,所以可以按照一周七天推算出对应星期几。最后,输出对应的日期和星期几即可。
阅读全文