답변자님,
정보를 공유해 주세요.
몇가지 틀린 부분있습니다. sum[i] += arr[i][j]; 과목점수를 합산하고 있는데 계속 나누어 주는 것은 avg[i] = sum[i] / 5; 같은 작업을 반복하게 되는 겁니다. 따라서 효율적이지 않고 석차는 결국 평균이든 합산이든 최종 값을 가지고 비교하는 것인데 한줄에 값을 출력 그 다음에 값을 출력한다면 비교를 할 수가 없습니다. 따라서 먼저 값을 배열에 다 넣어 놓고 그 다음에 석차를 구해야 합니다. 석차는 비교 대상보다 높은 점수를 가질 경우 하나씩 빼주면 결국 가장 높은 점수를 가지는 게 1위가 되는 식입니다.
(1) 실행소스
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | package nhn.etc.java11; import java.util.Random; public class practice { public static void main(String args[]) { Random p = new Random(); // 제목// System.out .println( "=====================================" + "===============★성적표★=============" + "========================================="); String name1[] = { "성명 ", "국어 ", "영어 ","수학", "사회", " 과학", "총점", " 평균", "석차" }; for (String a : name1) System.out.printf("%15s\t", a); System.out.println(""); System.out .println( "====================================" + "===================================" + "========================================="); // 변수선언// int[][] arr = new int[5][5]; int i, j; int[] sum = new int[5]; // 행의 총합계 double[] avg = new double[5]; // 행의 총평균 int[] rank = { 6, 6, 6, 6, 6 }; // 석차 // 이름// String name[] = { "김승연||", "안일기||", "박찬영||", "양승철||", "박수용||" }; // 점수 입력 for (i = 0; i < arr.length; i++) { for (j = 0; j < arr.length; j++) { arr[i][j] = p.nextInt(100); // 합계 sum[i] += arr[i][j]; // 평균 } avg[i] = sum[i] / 5; } // 석차 구하기 for(i = 0; i < arr.length; i++) { for(j = 0; j < arr.length ; j++) { if(sum[i] >= sum[j]) { rank[i]--; } } } // 출력// for (i = 0; i < arr.length; i++) { System.out.printf("%11s \t", name[i]); // 난수로 점수출력 for (j = 0; j < arr.length; j++) { System.out.printf("%5d\t\t", arr[i][j]); } // 합계 출력 System.out.printf("%5d\t\t", sum[i]); // 평균 출력 System.out.printf("%5f\t", avg[i]); // 석차 출력 System.out.printf("%5d\t\t", rank[i]); System.out.println(""); } } } | cs |
(2) 실행결과
2015.11.18.
-
채택
질문자가 채택한 답변입니다.
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.