import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int test_case = sc.nextInt();
for (int i = 0; i < test_case; i++) {
int stu_Num = sc.nextInt();
int count = 0;
double avg = 0;
double avg_Over;
int[] score_arr = new int[stu_Num];
for (int j = 0; j < stu_Num; j++) {
int score = sc.nextInt();
score_arr[j] = score;
avg += score;
}
avg = avg / stu_Num;
for (int k = 0; k < score_arr.length; k++) {
if (score_arr[k] > avg) {
count++;
}
}
avg_Over = (double) count / stu_Num * 100;
System.out.printf("%.3f", avg_Over);
System.out.println("%");
}
}
}
배열과 다중 for문을 이용한 문제였습니다. 마지막 부분에 avg_Over에서 평균을 넘는 학생 수를 구할 때 그냥 / %를 사용할 경우 변수 count와 stu_Num이 int형이기에 원하는 답이 나오지 않습니다(예를 들어 5/2를 하면 2.5를 원하지만 int형이기에 2가 나옵니다.). 이 부분을 고치기 위해 변수중 하나를 double로 강제 형변환 시켜줘서 double / int를 만들어서 원하는 식을 얻었습니다.
시비거는건 아닌데 3번째줄에 오류가 보이네요ㅎ