티스토리 뷰

4344번: 평균은 넘겠지
https://www.acmicpc.net/problem/4344
#include <stdio.h>

int main()
{
	int t = 0;
	int s = 0;
	
	scanf("%d", &t);
	
	for (int i = 0; i < t ; i++)
	{
		int score[1000] = {};
		double average = 0;
		int sum = 0;
		scanf("%d", &s);
		
		for (int j = 0; j < s; j++)
		{
			scanf("%d", &score[j]);
			sum += score[j];
		}
		
		average = (double)sum/s;
		int people = 0;
        double result = 0;
        
		for(int j = 0; j < s ; j++)
		{
		    if(average < (double)score[j])
		    {
		        people++;
		    }
		}
		result = (double)people/s * 100;
		printf("%.3f%%\n", result);
	}
}
메모리 (KB)시간 (ms)코드 길이 (B)
11120545

이 문제는 평균 점수를 구하는게 아닌, 학생들 중 평균 점수를 넘은 사람들의 비율을 구하는 문제이다. 이 역시 for문 안에 어떤 내용을 넣을지 생각하는게 중요하다.

먼저 이중 for문 중 첫번째 for문에서는 평균 점수를 구했고, 두번째 for문에서는 배열을 다시 돌며 평균 점수를 넘은 사람들의 수를 구했다.

🙋 더 알아보기

소수점 자리 출력 정하기

← 코드의 결과

소수를 출력할 때는 printf(”%f”, …);로 작성하면 되지만 일반적으로 6자리가 출력된다. 반올림되기 때문에 문제를 잘 읽고 어느 정도까지 출력해야 하는지 확인해야 한다.

%를 출력하기

이전에 입출력 문제들처럼 \는 이스케이프 문자를 나타내기 때문에 \하나만을 출력할 수 없다. 그래서 \\를 써주어 \를 출력해주었다. 그와 같이 %는 서식 문자를 나타낸다. 그러므로 %를 사용할 때도 %%로 작성하여 %를 출력해주어야 한다. 그래도 출력은 되네…


Uploaded by N2T

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
링크
Total
Today
Yesterday