仅使用循环的 C++ 数字模式解决方案

您好,我尝试在网站上搜索是否有类似的问题,但没有找到。如果有类似的情况,我深表歉意。我应该编写一种给定输入的数字模式,如下所示,不使用列表、向量、数组等,只使用循环 (for,while,do-while)

输入:5

输出:

 
1 2 3 4 5

2 2 3 4 5

3 3 3 4 5

4 4 4 4 5

5 5 5 5 5 

(没有所有额外的行,但它不会正确显示) 我尝试使用以下代码:

int count = 1;
int counter = 1;

while (count <= a) {
        cout << count << " ";
        count++;
    }
    cout << endl;
    for (int i = 1 + counter; i <= a; i++) {
        cout << i << " ";
        for (int k = i; k <= a; k++) 
            cout << k << " ";
        cout << endl;
        counter++;
    }

我得到输出:

1 2 3
2 2 3
3 3

我确实理解我解决这个问题的方式(仅使用两个 for 循环)是不正确的,但我不知道如何解决这个问题。任何意见是极大的赞赏。谢谢!

wqs695932489 回答:仅使用循环的 C++ 数字模式解决方案

您必须打印 i i-1 次而不是一次。

int count = 1;
int counter = 1;

while (count <= a) {
    cout << count << " ";
    count++;
}
cout << endl;
for (int i = 1 + counter; i <= a; i++) {
    for (int k = 1; k < i; k++) // print i (i-1) times
        cout << i << " ";
    for (int k = i; k <= a; k++) 
        cout << k << " ";
    cout << endl;
    counter++;
}
本文链接:https://www.f2er.com/9550.html

大家都在问