내일배움캠프🔥/퀘스트✔️

[ 내일배움캠프 ] 1. 간단한 프로그래밍 구현하기

pseonu 2024. 12. 30. 11:16

3️⃣ 필수 기능 가이드

해당 기능은 반드시 구현을 해주셔야해요! 원격 강의를 들었다면 어렵지 않게 할 수 있습니다!

  • 사용자로부터 5개의 숫자를 입력 받아 배열에 저장하고 이들의 합계와 평균을 계산해서 출력해주세요!
  • 5개의 숫자를 입력 받는 공간은 배열을 활용할게요!
  • 합과 평균을 구하는 동작은 main함수에 한번에 작성하지 말고 각각 함수를 구현해주시는 것으로 해요!
    • 왜 이렇게 하는 것이 좋은지를 한 번 더 생각해보면서 작성해봐요!

4️⃣ 도전 기능 가이드

도전 기능인만큼 난이도가 쉽지는 않아요! 사용자가 입력한 숫자 배열을 정렬하는 프로그램을 구현해볼까요?

  • 정렬은 오름차순 정렬과 내림차순 정렬이 가능해야 합니다.
  • 숫자 1을 입력 받으면 오름차순 정렬, 숫자 2를 입력 받으면 내림차순 정렬을 하도록 구현해주세요.
    • 입력을 구현하는 방법은 원격강의에서 배울겁니다!
  • algorithm 헤더의 sort 함수를 사용하지 않고 직접 구현해보세요.
  • 오름차순 정렬과 내림차순 정렬 동작을 각각 함수로 구현해봐요!

내가 작성한 코드

//사용자로부터 5개의 숫자를 입력받아 배열에 저장하고 이들의 합계와 평균을 계산해서 출력해줌.
//출력 이후 사용자의 선택에 따라 진행이 달라짐.
//1번을 누르면 배열을 오름차순으로 정리하여 출력
//2번을 누르면 내림차순으로 정리하여 출력 
//3번을 누르면 프로그램을 종료
//algorithm 헤더의 sort를 사용하지 않고 오름차순, 내림차순 동작을 각각의 함수로 구현
//=> 이중반복문 + 조건문 + temp라는 이름의 비어있는 변수를 이용해 순서 정렬

#include <iostream>
using namespace std;


int sum(int num[], int size) { //합을 구하는 기능 코드
	int add = 0;
	for (int i = 0;i < size;i++) {
		add += num[i]; //add = add + num[i];
	}
	return add;
}

int numavg(int sum,int size) {
	int avg = sum / size;
	return avg;
}

void Asc(int num[], int size) {
	for (int i = 0; i < size - 1; i++) {
		for (int j = 0; j < size - i - 1; j++) {
			if (num[j] > num[j + 1]) {
				int temp = num[j];
				num[j] = num[j + 1];
				num[j + 1] = temp;
			}
		}
	}
}

void Desc(int num[], int size) {
	for (int i = 0; i < size - 1; i++) {
		for (int j = 0; j < size - i - 1; j++) {
			if (num[j] < num[j + 1]) {
				int temp = num[j];
				num[j] = num[j + 1];
				num[j + 1] = temp;
			}
		}
	}
}

void printnum(int num[], int size) {
	for (int i = 0; i < size-1; i++) {
		cout << "[" << num[i] << "]" << " ,";
	}
	cout << "[" << num[size-1] << "]" << endl;
}

int main() {

	int number[5]; 
	int choice = 0;
	cout << "다섯개의 수를 입력받아 총합과 평균을 구합니다." << endl;

	for (int i = 0; i < 5; i++) {
		cout << i+1 << "번째 수를 입력하세요." << endl;
		cin >> number[i];
	}

	int x = sum(number, 5);
	cout << "배열의 평균은 : " << numavg(x, 5) << endl ;

	
	while (1) {
		cout << "ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ" << endl;
		cout << "정렬 방식을 선택하세요. " << endl
		<< "1. 오름차순 "<< endl <<"2. 내림차순 "<< endl <<"3. 종료 "<< endl;
		cin >> choice;

		if (choice == 1) {
			Asc(number, 5);
			cout << "오름차순 정렬 완료" << endl;
			printnum(number, 5);
		}
		else if (choice == 2) {
			Desc(number, 5);
			cout << "내림차순 정렬 완료" << endl;
			printnum(number, 5);
		}
		else {
			cout << "종료합니다" << endl;
			break;
		}
	}


}