[C++] 6주차 과제 리뷰

yeohn·2022년 11월 15일
0

2022-2 C++ 과제 리뷰

목록 보기
6/10

문제

(세 숫자 정렬) 세 개의 숫자를 오름차순으로 정렬하여 출력하기 위한 다음 헤더를 갖는 함수를 작성하여라.

입력 예시
1, 2, 3 / 1, 3, 2 / 2, 1, 3 / 2, 3, 1 / 3, 1, 2 / 3, 2, 1

(문제 출처 - C++로 시작하는 객체지향 프로그래밍 6.5)


작성한 코드

#include <iostream>
using namespace std;

void displaySortedNumbers(double num1, double num2, double num3)
{
	double temp;
	if (num1 > num2)
	{
		temp = num1;
		num1 = num2;
		num2 = temp;
	}
	if (num2 > num3)
	{
		temp = num2;
		num2 = num3;
		num3 = temp;
	}
	if (num1 > num2)
	{
		temp = num1;
		num1 = num2;
		num2 = temp;
	}
	cout << num1 << ' ' << num2 << ' ' << num3;

	// void 함수라 return 필요 없음
	// 함수에서 출력문까지 작성, 아래는 호출만
}

int main()
{
	double num1, num2, num3;
	cin >> num1 >> num2 >> num3;

	displaySortedNumbers(num1, num2, num3);
}

temp를 사용해 값을 swap하고 오름차순으로 출력한다.


다른 코드 (교수님 제공 모범답안)

#include <iostream>
using namespace std;

void displaySortedNumbers(double num1, double num2, double num3)
{
 	if (num1 > num2)
 	{
 		double temp = num1;
 		num1 = num2;
 		num2 = temp;
 	}
 	if (num2 > num3)
 	{
 		double temp = num2;
 		num2 = num3;
 		num3 = temp;
 	}
 	if (num1 > num2)
 	{
 		double temp = num1;
 		num1 = num2;
 		num2 = temp;
 	}
 	cout << num1 << " " << num2 << " " << num3 << endl;
}

int main()
{
 	double number1, number2, number3;
 	cout << " Enter three numbers: ";
 	cin >> number1 >> number2 >> number3;
 	displaySortedNumbers(number1, number2, number3);
    
 	return 0;
 }

temp를 전역변수 대신 지역변수로 선언한다.
main 함수를 0으로 return한다.

코드에 대한 교수님 코멘트

.

0개의 댓글