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

C语言编写1-6横轴乘法表时if语句条件不满足仍执行问题

问题原因

  • 核心死循环问题:mult变量初始化后没有在循环体内做自增操作,while(mult != 6)的退出条件永远无法满足,程序会无限循环执行循环体内的逻辑,所以会看到if语句持续执行的现象。
  • 输出逻辑不符合需求:check变量从0开始计数,会额外输出*0的无效结果,不符合横轴1~6的要求。
  • 纵轴范围匹配错误:需求要求纵轴是1~5,现有循环逻辑判断mult到6才退出,就算修复死循环问题也会多输出一行乘6的冗余结果。

修复方案

调整后的代码如下:

#include <stdio.h>
int main(){
    int mult = 1;
    int check = 1;
    int res;
    // 纵轴范围1~5,mult到5就停止循环
    while(mult <= 5){
        if (check <= 6){
            res = mult * check;
            printf("%d\t",res);
            check ++;
        }
        if (check > 6 ){
            printf("\n");
            check = 1;
            mult++; // 每行输出完成后纵轴计数+1
        }
    }
    return 0;
}

修改点说明:

  • 将check初始值调整为1,避免输出乘0的无效结果
  • 在每次换行逻辑后新增mult++,保证while循环可以正常退出,同时匹配纵轴1~5的输出要求
  • 将while循环条件调整为mult <=5,更贴合需求的范围描述,可读性更高
  • 输出时用\t代替空格,乘法表排版更整齐

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:24:01