设计c语言程序 假如某月的1日是星期三,那么输入该月中的日期,要求输出对应的星期数。如输入3,则输出Friday。输入不合法的数据,输出有错
时间: 2023-08-31 11:22:46 浏览: 89
### 回答1:
以下是一个简单的 C 语言程序,可以实现上述功能:
```c
#include <stdio.h>
int main() {
int day;
printf("请输入一个月中的日期:");
scanf("%d", &day);
if (day < 1 || day > 31) {
printf("输入不合法的数据!\n");
return 1;
}
int weekday = (day + 2) % 7;
switch (weekday) {
case 0:
printf("Sunday\n");
break;
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
case 4:
printf("Thursday\n");
break;
case 5:
printf("Friday\n");
break;
case 6:
printf("Saturday\n");
break;
}
return 0;
}
```
这个程序会提示用户输入一个月中的日期,然后计算出对应的星期数并输出。如果输入的数据不合法(小于1或大于31),则会输出错误信息并退出程序。
### 回答2:
要设计一个C语言程序来实现这个功能,可以采用以下步骤:
1. 定义一个函数来判断某年是否是闰年。这可以通过判断年份是否能被4整除但不能被100整除,或者能被400整除来实现。
2. 定义一个函数来计算某年某月1日是星期几。可以利用Zeller公式来计算,公式为:
h = (q + ((26 * (m + 1)) / 10) + k + (k / 4) + (j / 4) + (5 * j)) % 7
其中, h是星期(0-6,0表示星期天),q是某月的第几天,m是月份(3表示3月,4表示4月,...,12表示12月,要把1月和2月看作上一年的13月和14月计算),j是年份的前两位数,k是年份的后两位数。
3. 在主函数中,获取用户输入的月份。
4. 调用函数判断该年份是否是闰年,如果是,则将月份修改为上一年的13月和14月对应的月份。
5. 调用函数计算某年某月1日是星期几。
6. 根据计算结果输出相应的星期数,可以使用switch语句实现。
7. 对于不合法的输入数据,如输入的月份超过了1-12的范围,输出错误信息。
这样,就可以实现根据输入的日期,输出对应的星期数的功能。
### 回答3:
设计c语言程序,实现输入一个月中的日期,输出对应的星期数。首先,我们需要判断输入的日期是否合法,即日期是否在1到31之间,如果不在该范围内,则输出"输入日期不合法"。
然后,根据已知条件,假设某月的1日是星期三,那么可以通过计算得出该月的每一天是星期几。
具体实现步骤如下:
1. 定义一个整型变量date,作为输入的日期。
2. 判断date的值是否在1到31之间,如果不在该范围内,则输出"输入日期不合法",并结束程序。
3. 定义一个整型变量week,用于保存星期数。
4. 根据输入的日期计算该日是星期几:
- 首先,根据已知条件,假设某月的1日是星期三,根据这一信息,可以推算出每个月的第一个星期几。
- 计算输入日期与该月第一天相隔的天数,将其除以7并取余数,余数即为该日期是星期几。
5. 根据计算结果,输出对应的星期数:
- 如果week的值为0,输出"Sunday";
- 如果week的值为1,输出"Monday";
- 如果week的值为2,输出"Tuesday";
- 如果week的值为3,输出"Wednesday";
- 如果week的值为4,输出"Thursday";
- 如果week的值为5,输出"Friday";
- 如果week的值为6,输出"Saturday"。
这样,我们就可以根据输入的日期输出对应的星期数了。如果输入的日期不合法,程序会输出"输入日期不合法"提示。注意,此程序没有考虑闰年因素。
阅读全文