c语言输出n是学号后两位若n>31则n=n-31 已知2022年3月18日是星期五,要求运行后输入n,回车输出结果 例如:输入32输出2022年3月2日是星期三
时间: 2023-05-27 11:02:12 浏览: 222
```c
#include <stdio.h>
int main() {
int n;
printf("请输入学号后两位:");
scanf("%d", &n);
if (n > 31) {
n -= 31;
}
int days = (n - 1) * 3 % 7;
printf("2022年3月%d日是星期", n * 2);
if (days == 0) {
printf("五");
} else if (days == 1) {
printf("六");
} else if (days == 2) {
printf("日");
} else if (days == 3) {
printf("一");
} else if (days == 4) {
printf("二");
} else if (days == 5) {
printf("三");
} else {
printf("四");
}
return 0;
}
```
解析:
本题考查对于日期计算和条件语句的使用。
通过题目描述可以得知,学号后两位大于31的需要减去31,这是因为每月的天数都不一样,需要对具体的月份进行判断才能得到准确的日期。
结合样例和日期计算知识可以得到公式:
日期 = 学号后两位 × 2(因为18日是星期五,所以是18日的后两位);
星期 = (日期 - 1)× 3 % 7(因为从18日算到1日,一共17天,每隔3天是一个星期,取余得到星期几)
最后通过条件语句输出星期几即可。
注意输入时要使用%d格式化符号,否则可能出现格式不匹配的问题。
阅读全文