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;
}
출력 결과