코딩시시작작
190
2020-03-23 22:58:48
1
451

10*10단위행렬 출력하기


제가 단위행렬을 출력하는 프로그램을 만들기 위해서 while문을 이용해봤는데요

이상하게 첫줄만 출력되더라구요.

그런데 콘솔 창에는 

///

 1   0   0   0   0   0   0   0   0   0











C:\Users\82104\source\repos\Project_lab5and6_3번_test\Debug\Project_lab5and6_3번_test.exe(프로세스 5100개)이(가) 종료되 었습니다(코드: 0개).

이 창을 닫으려면 아무 키나 누르세요...

///

이런식으로 빈공간이 있어서 뭔가 출력되었었는데 사라진것 같다는 느낌도 듭니다.
아래는 제 코드입니다.
 
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{

    int column = 1, row = 1;
    while (column <= 10)
    {
        while (row <= 10)
        {
            int num;
            if (row == column)
            {
                num = 1;
                cout << setw(4) << num;
                row += 1;
            }
            else
            {
                num = 0;
                cout << setw(4) << num;
                row += 1;
            }

        }
        cout << endl;
        column += 1;
        continue;



    }


}










0
  • 답변 1

  • Frontend Maker
    695
    2020-03-23 23:06:55

    안쪽 반복문에서 row를 초기화해주어야 합니다. 또한 안쪽 로직을 간단하게 해결할 수 있습니다.


    #include <iostream>
    #include <iomanip>
    using namespace std;
    
    int main()
    {
        int column = 1, row = 1;
        while (column <= 10)
        {
            row = 1;
            while (row <= 10)
            {
                cout << setw(4) << (row == column ? 1 : 0);
                row++;
            }
            cout << endl;
            column += 1;
            continue;
        }
        return 0;
    }


  • 로그인을 하시면 답변을 등록할 수 있습니다.