用c语言实现:已经知道今天是星期二,由键盘上输入1个非负整数n。请你计算n天后是星期几,并输出 输入 输入一个非负整数n,0 < n < 2000。 输出 输出一个非负整数,为所求结果。1~6代表星期一~星期六,0代表星期日
时间: 2024-09-23 11:06:45 浏览: 48
在C语言中,为了实现这个功能,我们可以使用模运算(%)结合星期天循环的概念。因为一周只有7天,所以我们只需要将n除以7取余数,然后根据余数推算出n天后是星期几。如果n除以7余数是0,那就是星期日;如果余数是1,就是星期一,依此类推,直到6代表星期六。以下是C语言的代码实现:
```c
#include <stdio.h>
int dayAfter(int n) {
// 星期天对应的余数是0
static const int days[] = {0, 1, 2, 3, 4, 5, 6};
// 计算n天后的星期
int result = (days[(n % 7) + 7]) % 7;
return result;
}
int main() {
int n;
printf("请输入一个非负整数n(0 < n < 2000):");
scanf("%d", &n);
if (n >= 0 && n < 2000) {
int nextDay = dayAfter(n);
printf("n天后是星期%zu。\n", nextDay == 0 ? 7 : nextDay); // 0表示周日,转换为1表示周一
} else {
printf("无效输入,n应该在0到1999之间。\n");
}
return 0;
}
```
这段代码首先定义了常量`days`来存储星期的对应编号,然后通过`dayAfter`函数计算n天后的星期。在`main`函数中,读入用户输入的n并检查其有效性,然后调用`dayAfter`函数并输出结果。
阅读全文