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

求助:能否通过嵌套for循环实现含数值的4列内容输出?

如何用嵌套for循环打印4列数值内容

嘿,我明白你的需求了——你想通过嵌套循环把x、y、计算出的面积(area)和周长(perimeter)这四个值整理成整齐的4列输出对吧?你的代码已经完成了核心的计算部分,只差最后一步格式化打印和对齐逻辑了,我来帮你补全并解释清楚。

首先,先明确我们要的输出效果(类似这样):

x y Area Perimeter
1 1 1 4
1 2 2 6
1 3 3 8
1 4 4 10
2 1 2 6
...(以此类推直到x=5,y=4)

完整代码实现

#include <stdio.h>

int main() {
    // 先打印表头,用格式化字符串保证列对齐
    printf("%-5s %-5s %-7s %-10s\n", "x", "y", "Area", "Perimeter");
    
    // 外层循环控制x的值
    for(int x = 1; x <=5; x++) {
        // 内层循环控制y的值
        for(int y = 1; y <5; y++) { 
            int area = x * y;
            int perimeter = 2 * x + 2 * y;
            
            // 格式化打印4列内容,%-Nd表示左对齐、占N个字符宽度
            printf("%-5d %-5d %-7d %-10d\n", x, y, area, perimeter);
        }
    }
    return 0;
}

关键细节解释

  • 表头打印:用%-5s这种格式符,-表示左对齐,5表示占用5个字符宽度,这样每个列的标题和内容都能对齐,不会因为数字位数不同导致列混乱。
  • 内容打印:对应整数用%-5d,同样是左对齐+固定宽度,确保四列内容始终整齐排列。
  • 循环逻辑:外层x从1到5,内层y从1到4,每个x和y的组合都会计算一次面积和周长,然后打印一行4列的内容,刚好覆盖你需要的所有组合。

如果你的需求是把多行内容横向分成4列显示(比如一行显示4组x/y/area/perimeter),那逻辑会稍有不同,比如需要控制每打印4组就换行。但从你的描述来看,上面的代码应该完全符合你要的“4列内容并排打印”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:44:57