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

C语言实现基于数字总数的弗洛伊德三角形(非行数驱动)求助

实现以数字总数为输入的类弗洛伊德三角形

问题说明

需要实现类弗洛伊德三角形效果,输入值为要显示的数字总数(而非行数):

  • 输入总数9时,输出到数字9为止的三角形:
Enter a number: 9
1
23
456
789

现有代码是按输入行数生成三角形(输入9为行数时会输出9行,显示到数字45),不符合需求。

现有代码

#include <stdio.h>
int main() {
   int rows, i, j, number = 1;
   printf("Enter a number: ");
   scanf("%d", &rows);
   for (i = 1; i <= rows; i++) {
      for (j = 1; j <= i; ++j) {
         printf("%d ", number);
         ++number;
      }
      printf("\n");
       
   }
   return 0;
}

修改后的代码

#include <stdio.h>

int main() {
    int total_num, i = 1, j, number = 1;
    printf("Enter a number: ");
    scanf("%d", &total_num);

    while (number <= total_num) {
        // 每行输出i个数字,同时确保不超过总数
        for (j = 1; j <= i && number <= total_num; ++j) {
            printf("%d", number);
            ++number;
        }
        printf("\n");
        i++;
    }
    return 0;
}

关键改动说明

  • 变量语义优化:将原变量rows改为total_num,明确表示输入的是数字总数
  • 循环逻辑重构:外层用while循环控制数字不超出输入总数,替代原有的固定行数循环
  • 边界控制:内层循环增加number <= total_num的判断,避免最后一行输出多余数字
  • 格式调整:移除原输出中的空格,让每行数字连续显示,匹配需求示例的格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:25:25