• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

min_score 질문

23.06.12 16:26 작성 23.06.12 16:26 수정 조회수 289

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

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2023.06.13

안녕하세요, 답변 도우미 Soobak 입니다.

강의에서의 연습 문제에 대한 질문이시군요.

min_score0 으로 초기화하게 되면, 주어진 점수 값들이 모두 0 보다 크기 때문에, min_score > scores[i] 의 조건을 만족시키는 경우가 없습니다.
따라서, min_score 의 값이 갱신되지 않고 초기값인 0 을 계속 유지하게 됩니다.

 반면, min_score100 으로 초기화하면, 주어진 점수들 중에서 100 보다 작은 값이 있으면, min_score 값이 그 값으로 갱신됩니다.

따라서, 최솟값을 탐색하고자 하는 경우에는 최솟값의 초기값을 범위 내에서 가장 큰 값으로 설정하는 것이 좋습니다.