如何用C++ for循环实现数字星号倒直角三角形图案反转
问题:保留for循环的前提下反转图案输出
期望输出与实际输出对比:
Desired Output: Actual Output: 123456 1***** 12345* 12**** 1234** 123*** 123*** 1234** 12**** 12345* 1***** 123456
现有代码:
#include <iostream> using namespace std; int main() { int num, row, integ; cout << "Please enter size: "; cin >> integ; for (row = 1; row <= integ; row++) { for (num = 1; num <= row; num++) { cout << num; } for (; num <= integ; num++) { cout << "*"; } cout << endl; } }
修改后的代码
只需调整外层for循环的遍历方向,从integ开始递减到1即可:
#include <iostream> using namespace std; int main() { int num, row, integ; cout << "Please enter size: "; cin >> integ; // 外层循环改为从integ递减到1 for (row = integ; row >= 1; row--) { for (num = 1; num <= row; num++) { cout << num; } for (; num <= integ; num++) { cout << "*"; } cout << endl; } }
说明
原代码外层循环从1到integ,每行输出的数字数量逐行递增;修改后外层循环从integ到1,每行输出的数字数量逐行递减、星号数量逐行递增,完全匹配期望的输出图案。
内容的提问来源于stack exchange,提问作者Unknown
相关产品推荐
相关产品推荐

