有这样一个小游戏,你可以按照下面的步骤一步一步地完成: (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." 并不再继续执行以下程序)
时间: 2024-02-25 07:57:44 浏览: 28
好的,这是一份简单的 C 语言代码,可以实现您的要求:
```c
#include <stdio.h>
int main() {
int day, gender, birth_month, birth_year, result;
printf("请输入你一般一个星期中最忙的一天(1-7):");
if (scanf("%d", &day) != 1 || day < 1 || day > 7) {
printf("Invalid input.\n");
return 0;
}
result = day * 2;
printf("请输入你的性别(1表示男性,2表示女性):");
if (scanf("%d", &gender) != 1 || gender < 1 || gender > 2) {
printf("Invalid input.\n");
return 0;
}
if (gender == 1) result += 4;
else result += 8;
printf("请输入你的出生月份(1-12):");
if (scanf("%d", &birth_month) != 1 || birth_month < 1 || birth_month > 12) {
printf("Invalid input.\n");
return 0;
}
printf("请输入你的出生年份(例如1988):");
if (scanf("%d", &birth_year) != 1 || birth_year < 0) {
printf("Invalid input.\n");
return 0;
}
if (birth_month >= 1 && birth_month <= 6) result += 2002;
else result += 3002;
result -= birth_year;
result %= 100;
result += 10;
printf("你的年龄为:%d\n", result);
return 0;
}
```
代码解释:
首先定义了 5 个变量来存储用户输入的数据和计算结果。
使用 `scanf()` 函数从标准输入中读取用户输入的数据,对输入的数据进行检查,如果不符合要求,则输出提示信息并退出程序。
按照游戏规则进行计算,最后输出结果。
需要注意的是,这里没有考虑闰年的情况,如果用户输入的是一个闰年的出生年份,年龄计算可能会有误。需要在实际应用中进行改进。