C++

배열 실습 문제 모음

yoooon1212 2024. 12. 6. 11:08

실습 문제 1

배열을 이용하여 학생 5명의 몸무게를 입력 받고 평군을 구하세요
#include <iostream> 
using namespace std;

int main() {

	float stu_weight[5];
	float sum = 0;
	float avg;

	for (int i = 0; i < 5; i++) {
		cout << i + 1 << "번째 학생의 몸무게를 입력하세요 : ";
		cin >> stu_weight[i];
	}

	cout << "입력하신 사항은 아래와 같습니다" << endl;
	for (int i = 0; i < 5; i++) {
		cout << i + 1 << "번째 학생의 몸무게는 " << stu_weight[i] << "kg 입니다" << endl;
		sum += stu_weight[i];
	}

	avg = sum / 5.0;
	cout << "5명 학생의 몸무게의 평균은 " << avg << "kg 입니다";
	return 0;
}

 

출력 결과

 

 

실습 문제 2

10개 과목 성적을 배열로 입력받아 최고 성적을 구하세요
#include <iostream> 
using namespace std;

int main() {

	int score[10];

	cout << "10개 과목의 성적을 입력해주세요" << endl;
	for (int i = 0; i < 10; i++) {
		cout << i + 1 << "번째 성적을 입력해주세요 : ";
		cin >> score[i];
	}

	int max = score[0]; // 0번째 요소가 최고점이라고 가정함
	int index = 0; // 0번째에 값이 0인 첨자 저장
	for (int i = 1; i < 10; i++) { // 9번
		if (max < score[i]) {  // 만약 0번째 보다 i번째가 더 크다면
			max = score[i]; // 0번째의 값을 i번째로 바꿈
			index = i; // 인덱스도 i번째로 바꿈 --> 가장 큰 값이 저장됨
		}
	}
	cout << index + 1 << "번째 성적인 " << max << "점이 최고점입니다";
	return 0;
}

 

함수 사용

#include <iostream> 
using namespace std;

void getMaxScore(int arr[]);

int main() {

	int score[10];

	cout << "10개 과목의 성적을 입력해주세요" << endl;
	for (int i = 0; i < 10; i++) {
		cout << i + 1 << "번째 성적을 입력해주세요 : ";
		cin >> score[i];
	}
	getMaxScore(score); // score라는 배열을 넣어서 함수를 호출함
	
	return 0;
}

void getMaxScore(int arr[]) {
	int max = arr[0]; // 0번째 요소가 최고점이라고 가정함
	int index = 0; // 0번째에 값이 0인 첨자 저장
	for (int i = 1; i < 10; i++) { // 9번
		if (max < arr[i]) {  // 만약 0번째 보다 i번째가 더 크다면
			max = arr[i]; // 0번째의 값을 i번째로 바꿈
			index = i; // 인덱스도 i번째로 바꿈 --> 가장 큰 값이 저장됨
		}
	}
	cout << index + 1 << "번째 성적인 " << max << "점이 최고점입니다";
}

 

 

출력 결과

 

 

실습 문제 3

10개 과목 성적을 배열로 입력받아 최저 성적을 구하세요
#include <iostream> 
using namespace std;

void getMinScore(int arr[]);

int main() {

	int score[10];

	cout << "10개 과목의 성적을 입력해주세요" << endl;
	for (int i = 0; i < 10; i++) {
		cout << i + 1 << "번째 성적을 입력해주세요 : ";
		cin >> score[i];
	}
	getMinScore(score); // score라는 배열을 넣어서 함수를 호출함
	
	return 0;
}

void getMinScore(int arr[]) {
	int min = arr[0]; // 0번째 요소가 최저점이라고 가정함
	int index = 0; // 0번째에 값이 0인 첨자 저장
	for (int i = 1; i < 10; i++) { // 9번
		if (min > arr[i]) {  // 만약 0번째 보다 i번째가 더 작다면
			min = arr[i]; // 0번째의 값을 i번째로 바꿈
			index = i; // 인덱스도 i번째로 바꿈 --> 가장 작은 값이 저장됨
		}
	}
	cout << index + 1 << "번째 성적인 " << min << "점이 최저점입니다";
}

 

 

실습 문제 4

가위바위보 게임을 구현하세요.
#include <iostream> 
#include <stdlib.h> 
#include <time.h> 

using namespace std;

int main() {

	int com, user;
	int count = 0; // 가위바위보 횟수
	int result[3] = {0}; // 3개 = 이김, 비김, 짐

	// 난수 발생 코드
	// 시드 값은 time으로 넣음 --> 언제나 난수 발생 가능
	srand((unsigned)time(NULL));

	// 사용자가 종료할 때까지 가위바위보를 함(무한 반복)
	while (1) {
		cout << "**********가위바위보게임************" << endl;
		cout << "1:가위 2:바위 3:보 0:종료" << endl;
		cout << "입력해주세요 : ";
		cin >> user;

		if (user > 0 && user < 4) {
			com = rand() % 3 + 1; // rand() % 3 = 0, 1, 2
			cout << "컴퓨터 : " << (com == 1 ? "가위" : com == 2 ? "바위" : "보") << endl;
			cout << "사용자 : " << (user == 1 ? "가위" : user == 2 ? "바위" : "보") << endl;
			count++;

			if (com == user) {
				cout << "비겼습니다" << endl; 
				// 0:승 1:무 2:패
				result[1]++;
			}
			else if ((com == 1 && user == 3) || (com == 2 && user == 1) || (com == 3 && user == 2)) {
				cout << "졌습니다" << endl;
				result[2]++;
			}
			else {
				cout << "이겼습니다" << endl;
				result[0]++;
			}
			cout << count << "전" << result[0] << "승" << result[1] << "무" << result[2] << "패" << endl;
		}
		else if (user == 0) {
			cout << "게임을 종료합니다" << endl;
			break;
		}
	}
	return 0;
}

 

 

출력 결과