You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CS50 Mario项目C语言代码合并两个不等式报错如何解决?

问题原因

  • 你的代码错误出在do-while循环的条件逻辑运算符使用不当:&&为逻辑与运算符,要求左右两个判断同时成立时整个表达式才返回真,但不存在任意整数可以同时满足x < 1和x > 8,因此这个条件永远为假,循环仅执行一次就会退出,完全无法实现重复索要合法输入的效果,这就是编译器报「重叠比较始终求值为false」的原因。

修改方案

将循环条件中的&&替换为逻辑或运算符||:只要输入的x小于1 或者 大于8(即不在1-8的合法区间内),就重新执行循环索要新输入。

修改后的完整代码如下:

#include <cs50.h>
#include <stdio.h>

int main(void)
{
    int x;
    do 
    {
       x = get_int("Height: ");
    }
    while(x < 1 || x > 8);
    
    // 此处可继续补充打印马里奥金字塔的后续逻辑
}

修改后程序会持续提示输入高度,直到拿到1-8之间的整数,完全符合你的预期需求。

内容的提问来源于stack exchange,提问作者Priapism

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:24:03