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

C语言特定直角三角形数字图案生成代码调试求助

解决直角三角形数字图案的输出问题

你的问题出在当数字超过9时,代码直接输出了完整的整数(比如10、11),导致每行出现多位数,不符合预期的单个数字循环显示要求。我们需要让数字在到达9之后回到0,并且每个位置只显示个位数字。

修正思路

核心是对每个要输出的数字取模10,这样任何数字都会被转换成它的个位数字,实现9之后回到0的循环效果。只需要把原来的printf("%d",k+j);改成printf("%d", (k + j) % 10);即可。

修正后的完整代码

#include <stdio.h>

int main() {
    int rows, i, j, k = 0;
    printf("Enter the height: \n");
    scanf("%d", &rows);
    printf("The pattern is: \n");
    for(i = 1; i <= rows; i++) {
        for(j = 1; j <= i; ++j)
            printf("%d", (k + j) % 10); // 添加取模10操作,确保只输出个位数字
        ++k;
        printf("\n");
    }
    return 0;
}

测试验证

当输入行数为7时,输出结果为:

1
23
345
4567
56789
678901
7890123

完全符合你预期的图案效果。

补充说明

  • 取模10操作(k + j) % 10会将任何整数转换为0-9之间的个位数字,完美实现数字循环的需求。
  • 原代码中k的递增逻辑是正确的,它保证了每行的起始数字依次加1,不需要修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 09:52:29