-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
min_score 질문
23.06.12 16:26 작성 23.06.12 16:26 수정 조회수 294
1
int main()
{
//const int num_students = 5;
int scores[] = { 84,92,76,81,56 };
const int num_students = sizeof(scores) / sizeof(int);
int max_score = 0;
int min_score = 0;
int total_score = 0;
for (int i = 0; i < num_students; i++)
{
total_score += scores[i];
//max_score = (max_score < scores[i]) ? scores[i] : max_score;
if (max_score < scores[i])
{
max_score = scores[i];
}
if (min_score > scores[i])
{
min_score = scores[i];
}
}
double avg_score = static_cast<double>(total_score) / num_students;
cout << max_score << endl;
cout << min_score << endl;
return 0;
}
여기서 min_score값을 100으로 올리니까 값이 나오는데
min_score값을 왜 올려야 하는건가요??
답변을 작성해보세요.
1
Soobak
2023.06.13
안녕하세요, 답변 도우미 Soobak 입니다.
강의에서의 연습 문제에 대한 질문이시군요.
min_score
을 0
으로 초기화하게 되면, 주어진 점수 값들이 모두 0
보다 크기 때문에, min_score
> scores[i]
의 조건을 만족시키는 경우가 없습니다.
따라서, min_score
의 값이 갱신되지 않고 초기값인 0
을 계속 유지하게 됩니다.
반면, min_score
을 100
으로 초기화하면, 주어진 점수들 중에서 100
보다 작은 값이 있으면, min_score
값이 그 값으로 갱신됩니다.
따라서, 최솟값을 탐색하고자 하는 경우에는 최솟값의 초기값을 범위 내에서 가장 큰 값으로 설정하는 것이 좋습니다.
답변 1