C++自然数半金字塔图案程序编写求助:现有代码输出不符
修正C++半金字塔连续自然数图案代码
你的问题出在内层循环每次都从1开始输出数值,导致每行都是从1重新计数。要实现连续自然数的半金字塔,需要一个独立的计数器来追踪当前要输出的数字,而不是直接使用循环变量j。
修正后的代码:
#include <iostream> using namespace std; int main() { int rows, i, j; int num = 1; // 新增计数器,追踪当前要输出的自然数 cout << "Enter number of rows: "; cin >> rows; for(i = 1; i <= rows; i++) { for(j = 1; j <= i; j++) { cout << num << " "; // 输出当前计数器值,用两个空格保证对齐 num++; // 计数器自增 } cout << "\n"; } return 0; }
关键改动说明:
- 新增
num变量并初始化为1,用来记录当前要输出的连续自然数。 - 内层循环不再输出循环变量
j,而是输出num,每次输出后num自增1,保证数字连续递增。 - 输出时使用两个空格
" ",让多位数(如11、12)和个位数的对齐效果更贴近预期输出。
测试输出(输入5行):
Enter number of rows: 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
内容的提问来源于stack exchange,提问作者viper_hydrox
相关产品推荐
相关产品推荐

