#include stdiohint main int a = 5; int b = 6; int age; printf请输入年龄 ; scanfd &age; if age = 0 age 120 printf年龄输入无效请重新输入n; if age 18 printf不准玩游戏; else
#include <stdio.h>
int main() { int a = 5; int b = 6; int age;
printf("请输入年龄: "); // 提示用户输入年龄
scanf("%d", &age); // 从用户输入中读取年龄并存储在变量age中
if (age <= 0 || age > 120) { // 检查年龄是否有效
printf("年龄输入无效,请重新输入\n"); // 年龄无效时打印错误提示
}
if (age < 18){
printf("不准玩游戏"); // 年龄小于18岁时打印不准玩游戏
else if (age >= 18 && age < 25)
printf("好好学习"); // 年龄在18到25岁之间时打印好好学习
else if (age >= 25 && age < 70)
printf("好好工作"); // 年龄在25到70岁之间时打印好好工作
else if(age >= 70 || age > 120)
printf("可以玩游戏了"); // 年龄大于等于70岁或大于120岁时打印可以玩游戏了
}
return 0;
}
问题:
- 缺少了一对大括号,导致if语句块没有正确地嵌套。
- 年龄判断条件存在重复,可以使用else语句来简化判断逻辑。
- 年龄范围判断条件存在逻辑错误,应该使用&&运算符而不是||运算符。
修改后的代码如下:
#include <stdio.h>
int main() { int a = 5; int b = 6; int age;
printf("请输入年龄: "); // 提示用户输入年龄
scanf("%d", &age); // 从用户输入中读取年龄并存储在变量age中
if (age <= 0 || age > 120) { // 检查年龄是否有效
printf("年龄输入无效,请重新输入\n"); // 年龄无效时打印错误提示
}
else {
if (age < 18){
printf("不准玩游戏"); // 年龄小于18岁时打印不准玩游戏
}
else if (age >= 18 && age < 25) {
printf("好好学习"); // 年龄在18到25岁之间时打印好好学习
}
else if (age >= 25 && age < 70) {
printf("好好工作"); // 年龄在25到70岁之间时打印好好工作
}
else if(age >= 70 && age <= 120) {
printf("可以玩游戏了"); // 年龄大于等于70岁和小于等于120岁时打印可以玩游戏了
}
}
return 0;
原文地址: https://www.cveoy.top/t/topic/h83e 著作权归作者所有。请勿转载和采集!