求助:能否通过嵌套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
相关产品推荐
相关产品推荐

