如何用C++打印指定格式数字三角形 现有代码输出不符合需求
修改方案
以下是调整后的可运行代码:
#include <iostream> using namespace std; int main() { // 外层循环控制行数,共10行 for (int line = 1; line <= 10; line++) { // 计算当前行的起始数字 int start = (line - 1) * 10 + 1; // 内层循环控制当前行输出的数字个数,第line行输出line个 for (int cnt = 0; cnt < line; cnt++) { int num = start + cnt; // 补零输出逻辑沿用原有逻辑 if (num < 10) { cout << "00" << num << " "; } else if (num < 100) { cout << "0" << num << " "; } else { cout << num << " "; } } // 每行输出完所有数字后换行 cout << endl; } return 0; }
核心改动说明
- 原有单循环遍历1~100、每满10个换行的逻辑和需求不匹配,改为双层循环:外层控制行数,内层控制每行输出的数字数量
- 新增行首数字计算规则:第N行的第一个数字为
(N-1)*10 +1,匹配预期输出的首数字规律 - 移除原有
i%10==0的换行判断,改为每行输出完指定数量的数字后统一换行
如果想要简化补零逻辑,也可以用格式化输出简化代码:
#include <cstdio> int main() { for (int line = 1; line <= 10; line++) { int start = (line - 1) * 10 + 1; for (int cnt = 0; cnt < line; cnt++) { printf("%03d ", start + cnt); } printf("\n"); } return 0; }
内容的提问来源于stack exchange,提问作者Apichart Chaiyasat
相关产品推荐
相关产品推荐

