C语言有这样一个小游戏,你可以按照下面的步骤一步一步地完成: (1)你一般一个星期中哪一天最忙呢?如果是星期一,则选1,如果是星期二,则选2,依此类推,从1、2、3、4、5、6、7中选一个数字; (2)将这个数字乘2; (3)如果你是男生,则将得到的结果加4,如果你是女生,则将得到的结果加8; (4)将得到的结果乘以50; (5)如果你是在1~6月出生,则将得到的结果加2002,如果你是在7~12月出生,则将得到的结果加3002; (6)将得到的结果减去你出生的年份(例如1988); (7)取结果的后两位,得到一个两位数,将这个两位数加10。 你一定会感到惊奇,最后得到的结果竟然是你现在的年龄。请编程实现上述游戏的计算过程,并输出年龄的计算结果。(要求对不符合要求的输入提示"Invalid input." 并不再继续执行以下程序) 输入输出格式: 输出格式控制字符串: "Please input your busiest day.\n" "Please input your gender.\n" "Please input your birthday.\n" "Your age is:%d\n" "Invalid input.\n" 输入格式控制字符串: "%d" " %c" "%4d-%2d-%2d"
时间: 2024-03-09 13:49:54 浏览: 177
以下是C语言实现代码:
```c
#include <stdio.h>
int main() {
int day, gender, year, month, date;
printf("Please input your busiest day.\n");
scanf("%d", &day);
if (day < 1 || day > 7) {
printf("Invalid input.\n");
return 0;
}
printf("Please input your gender.\n");
scanf(" %c", &gender);
if (gender != 'M' && gender != 'F') {
printf("Invalid input.\n");
return 0;
}
printf("Please input your birthday.\n");
scanf("%4d-%2d-%2d", &year, &month, &date);
if (month < 1 || month > 12 || date < 1 || date > 31) {
printf("Invalid input.\n");
return 0;
}
int result = day * 2;
if (gender == 'M') {
result += 4;
} else {
result += 8;
}
result *= 50;
if (month >= 1 && month <= 6) {
result += 2002;
} else if (month >= 7 && month <= 12) {
result += 3002;
} else {
printf("Invalid input.\n");
return 0;
}
result -= year;
result %= 100;
result += 10;
printf("Your age is:%d\n", result);
return 0;
}
```
运行结果示例:
```
Please input your busiest day.
3
Please input your gender.
M
Please input your birthday.
1990-11-23
Your age is:30
```
阅读全文