• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

영상 마지막 부분에 내주신 과제물 풀어보았습니다. 코드리뷰 해주시면 정말로 감사드리겠습니다!

22.08.29 14:04 작성 조회수 275

0

무엇을 잘했는지 그리고 어떤 부분을 잘 못했는지 따끔하게 지적 부탁드리겠습니다!

 

[조금 더 나아가 홀수와 짝수를 분리시켜 출력하는 구구단 코드를 작성했습니다.]

1.구구단(홀,짝 구분 / while문 사용)

#include <iostream>

using namespace std;

int main()
{
    cout << "Multiplication Table" << endl;

    int N;
    cin >> N;
    int num1=1, num2=1;
    
    while (num2<=9)
    {
        num1 = 1;
        while (num1 <= N)
        {
            //even num => print
            if (num1 % 2 == 0)
            {
                cout << num1 << '*' << num2 << '=' << num1 * num2 <<'\t';
            }
            num1++;
        }cout << endl;
        num2++;

    }

    cout <<'\n'<< endl;
    num2 = 1;
    num1 = 2;

    while (num2 <= 9)
    {
        num1 = 2;
        while (num1 <= N)
        {
            //odd num => print
            if (num1 % 2 == 1)
            {
                cout << num1 << '*' << num2 << '=' << num1 * num2 << '\t';
            }
            num1++;
        }cout << endl;
        num2++;

    }

    return 0;
}

 

 

2. (1)번 문제를 goto문으로 변경해보았습니다.(main함수만 첨부)


int main()

{
   cout << "Multiplication Table" << endl;

   int N;
   cin >> N;
   int num1=1, num2=1;

   /*Even Number*/
   goto tryAgain_2;
tryAgain_1: // label 1
   {
   tryAgain_2: // label 2
      {
         if (num1 % 2 == 0) {cout << num1 << '*' << num2 << '=' << num1 * num2 << '\t';}
         num1++;

         if (num1 <= N) {goto tryAgain_2;}
      }
      cout << endl;
      num1 = 1;
      num2++;
      if (num2 <= 9) {goto tryAgain_1;}
   }

   cout << endl;
   num1 = 2;
   num2 = 1;

   /*Odd Number*/
   goto tryAgain_4;
tryAgain_3: // label 3
   {
   tryAgain_4: // label 4
      {
         //Even num_print
         if (num1 % 2 == 1) { cout << num1 << '*' << num2 << '=' << num1 * num2 << '\t'; }
         num1++;

         if (num1 <= N) { goto tryAgain_4; }
      }
      cout << endl;
      num1 = 2;
      num2++;
      if (num2 <= 9) { goto tryAgain_3; }
   }

/*------------------------------------------숫자 직각 삼각형----------------*/
3.작은 수 부터 출력하는 직각삼각형


int main()
{
   using namespace std;

   int N;
   cout <<"Number of Line: ";
   cin >> N;
   cout << endl;

   int count_outer = 1;

   while (count_outer <= N)
   {
      int count_inner = 1;
      while (count_inner <= count_outer)
      {
         cout << count_inner++ << " ";
      }cout << endl;
      count_outer++;
   }
   return 0;
}

 


4.(3)을 역으로 하여 큰 수 부터 출력하는 직각삼각형


int main()
{
   using namespace std;

   int N;
   cout <<"Number of Line: ";
   cin >> N;
   cout << endl;

   int count_outer = 1;

   while (count_outer<=N)
   {
      int count_inner = N;
      while (count_inner >= count_outer)
      {
         cout << count_inner-- << " ";
      }cout << endl;
      ++count_outer;
   }
   return 0;
}

답변 1

답변을 작성해보세요.

0

강민철님의 프로필

강민철

2022.08.30

안녕하세요

첨부해주신 코드 꼼꼼히 살펴보았습니다.

너무나 잘 작성해주신 듯 합니다 (때로는 창의적인 코드도 있어 코드를 보는 내내 기분이 좋았네요)

두 번째 코드 말미에 아래 코드가 생략된 것 맞지요?

return 0;
}

귀감이 되는 좋은 코드 감사드립니다.

임주혁님의 프로필

임주혁

질문자

2022.08.31

return 0; 경우는 코드를 옮기는 과정에서 생략된 것 같습니다!

기분이 좋으셨다는 말에 잘 공부한 것 같아 뿌듯하네요 ㅎㅎ

혹시, 어떤 부분이 귀감이 되셨는지 제가 알 수 있을까요? 타인이 보기에 귀감이 되는 코드가 있다면, 기억하고 싶어서요:)