#include <iostream>
using namespace std;
// 점수를 입력받아 배열에 저장하고 유효한 점수의 합계를 구하는 함수
double solution(int scores[], int scoresSize) {
int sum = 0;
int i = 0;
// scoresSize만큼 유효한 점수를 입력받음
while (i < scoresSize) {
cout << "점수를 입력 하세요: ";
cin >> scores[i];
// 입력값이 0 이상 100 이하일 경우만 유효
if (0 <= scores[i] && scores[i] <= 100) {
sum += scores[i];
cout << "현재 배열값: " << scores[i] << endl;
i++; // 유효할 때만 다음 인덱스로
} else {
cout << "0미만 100초과의 값을 넣을 수 없습니다." << endl;
}
}
return sum;
}
// 평균을 계산하는 함수
double solution2(int sum, int scoresSize) {
return static_cast<double>(sum) / scoresSize;
}
int main() {
int scores[5]; // 점수 배열
int* p = scores; // 포인터로 전달
int scoresSize = sizeof(scores) / sizeof(scores[0]); // 배열 크기 계산
double sum = 0;
// 디버깅용 포인터 확인 출력
cout << "scores의 배열: " << scores << " *p 의 값: " << p << endl;
// 점수 입력 및 총합 계산
sum = solution(p, scoresSize);
int temp = 0;
// 평균 출력
cout << "입력받은 점수 합계: " << sum << "점 평균: " << solution2(sum, scoresSize) << "점" << endl;
// --- 오름차순 정렬 (Bubble Sort) ---
for (int i = 0; i < scoresSize; i++) {
for (int j = 0; j < (scoresSize - 1) - i; j++) {
// 앞의 수가 뒤보다 크면 교환
if (scores[j] > scores[j + 1]) {
temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
cout << "오름차순:";
for (int i = 0; i < scoresSize; i++) {
cout << " " << scores[i];
}
cout << endl;
// --- 내림차순 정렬 (Bubble Sort) ---
for (int i = 0; i < scoresSize; i++) {
for (int j = 0; j < (scoresSize - 1) - i; j++) {
// 앞의 수가 뒤보다 작으면 교환
if (scores[j] < scores[j + 1]) {
temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
cout << "내림차순:";
for (int i = 0; i < scoresSize; i++) {
cout << " " << scores[i];
}
cout << endl;
}
'UE5 부트캠프(TIL)' 카테고리의 다른 글
[TIL] 상속 익숙해지기 (1) (1) | 2025.06.09 |
---|---|
[TIL] C++ class OOP(객체지향 프로그래밍) (1) | 2025.06.05 |
[TIL] (c++) 포인터 개념 (0) | 2025.05.28 |
[TIL] C++ 공부 (0) | 2025.05.27 |
[TIL] Git 협업 회고 - 브랜치 미사용 사례 (0) | 2025.05.26 |