#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;

}

问题:

  1. 缺少了一对大括号,导致if语句块没有正确地嵌套。
  2. 年龄判断条件存在重复,可以使用else语句来简化判断逻辑。
  3. 年龄范围判断条件存在逻辑错误,应该使用&&运算符而不是||运算符。

修改后的代码如下:

#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;
#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

原文地址: https://www.cveoy.top/t/topic/h83e 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录