如何使用c ++打印此矩形形状?

时间:2018-01-31 14:29:06

标签: c++

我试图绘制这种模式:

1 2 3 4 0
1 2 3 0 5
1 2 0 4 5
1 0 3 4 5

我得到了这种模式:

1 2 3 0 5
1 2 0 4 5
1 0 3 4 5
0 2 3 4 5

该计划是:

#include <iostream>

using namespace std;
int main () {


for (int i = 4 ; i >= 1; i--){
    for (int j = 1; j <=5 ; j++){
            if (i==j)
                cout <<"0";
            else
            cout <<j;
    }
    cout << endl;
}
return 0;
}

我该怎么做才能解决这个问题,并打印出预期的模式?

3 个答案:

答案 0 :(得分:4)

你需要0在第5位,然后在第4位,第3位和第2位,但是i从4到1迭代。只需改变第一个循环:

for (int i = 5 ; i >= 2; i--){

所以i根据需要从5迭代到2。

答案 1 :(得分:2)

试试这个:

#include <iostream>

using namespace std;
int main () {


for (int i = 4 ; i >= 1; i--){
    for (int j = 1; j <=5 ; j++){
            if (i==j-1)
                cout <<"0";
            else
            cout <<j;
    }
    cout << endl;
}
return 0;
}

我刚刚将i == j更改为i == j -1所以:
j = 1 4 == 0它将转到else并打印1
j = 2 4 == 1它将转到else并打印2
j = 3 4 == 2它将转到else并打印3
j = 4 4 == 3它将转到else并打印4
在这里它将打印0
j = 5 4 == 4如果为真,那么它将打印0,依此类推,直到外循环结束。

答案 2 :(得分:0)

#include <iostream>

using namespace std;
int main () {
    for (int i = 0 ; i <4 ; i++){
        for (int j = 1 ; j <=5 ; j++){
            if (i==(5-j))
                cout <<"0";
            else
                cout <<j;
        }
        cout << endl;
    }
    return 0;
}

输出:

12340
12305
12045
10345