-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
영상 마지막 부분에 내주신 과제물 풀어보았습니다. 코드리뷰 해주시면 정말로 감사드리겠습니다!
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;
}
답변을 작성해보세요.
0
강민철
2022.08.30
안녕하세요
첨부해주신 코드 꼼꼼히 살펴보았습니다.
너무나 잘 작성해주신 듯 합니다 (때로는 창의적인 코드도 있어 코드를 보는 내내 기분이 좋았네요)
두 번째 코드 말미에 아래 코드가 생략된 것 맞지요?
return 0;
}
귀감이 되는 좋은 코드 감사드립니다.
임주혁
질문자2022.08.31
return 0; 경우는 코드를 옮기는 과정에서 생략된 것 같습니다!
기분이 좋으셨다는 말에 잘 공부한 것 같아 뿌듯하네요 ㅎㅎ
혹시, 어떤 부분이 귀감이 되셨는지 제가 알 수 있을까요? 타인이 보기에 귀감이 되는 코드가 있다면, 기억하고 싶어서요:)
답변 1