문제
첫째 줄에 정수 n(2≤n≤100)을 입력받고 다음 줄부터 n명 학생의 3과목 점수를 입력받아 평균을 구하여 점수가 높은 순으로 출력하시오.
단, 평균은 소수 둘째 자리에서 반올림하여 소수 첫째 자리까지 출력하시오.
* 표준입출력방식으로 작성하세요.
입력 예
5
85 48 68
73 55 89
90 73 86
63 90 100
95 76 23
출력 예
84.3
83.0
72.3
67.0
64.7
코드
import java.util.*;
class School {
int a;
int b;
int c;
double avg;
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
School s[] = new School[n];
for (int i = 0; i < s.length; i++) {
s[i] = new School();
}
School temp;
for (int i = 0; i < s.length; i++) {
s[i].a = sc.nextInt();
s[i].b = sc.nextInt();
s[i].c = sc.nextInt();
s[i].avg = (s[i].a + s[i].b + s[i].c) / (float)3;
}
for (int i = 0; i < s.length; i++) {
for (int j = 0; j < (s.length-1)-i; j++) {
if(s[j].avg < s[j+1].avg) {
temp = s[j+1];
s[j+1] = s[j];
s[j] = temp;
}
}
}
for (int j = 0; j < s.length; j++) {
System.out.printf("%.1f\n", s[j].avg);
}
}
}
▷평균을 구할 때 소수 둘째 자리에서 반올림 해 소수 첫째 자리까지 출력하기 위해선
s[i].avg = (s[i].a + s[i].b + s[i].c)/(float)3;
이와 같이 float로 형변환을 해줘야 한다.
'Algorithm > JUNGOL' 카테고리의 다른 글
[정올] 214 : 파일입출력 - 형성평가10 (**) (0) | 2022.01.13 |
---|---|
[정올] 213 : 파일입출력 - 형성평가9 (*) (0) | 2022.01.12 |
[정올] 210 : 파일입출력 - 형성평가6 (*) (0) | 2022.01.12 |
[정올] 206 : 파일입출력 - 형성평가2 (0) | 2022.01.12 |
[정올] 630 : 파일입출력 - 자가진단5 (*) (0) | 2022.01.11 |