it공부/Java

반 평균 석차계산

콩쨈 2020. 7. 5. 21:59
반응형

석차 과목별 평균 합계 구하기

package d_array;

 

public class Array_03 {

public static void main(String[] args) {

/*

1. 다차원 배열

- 자바에서는 1차원 배열뿐만 아니라 2차원 이상의 다차원 배열도 허용한다.

- 선언

int[][] arr

int[] arr[];

int arr[][];

 

- 이차원 배열의 생성

 

*/

int[][] score = new int[][]{

{1,2},

{3,4,6},

{7,8,9,0}

};

 

int[][] score2 = new int[3][];

score2[0] = new int[3];

score2[1] = new int[4];

score2[2] = new int[2];

 

//{

//{0,0,0},

//{0,0,0,0},

//{0,0}

//}

//for (int count = 0; count < score2[0].length ; count++){

//System.out.println(score2[0][count]);

//}

//for (int count = 0; count < score2[1].length; count++) {

//System.out.println(score2[1][count]);

//}

//for(int count=0; count<score2[2].length;count++){

//System.out.println(score2[2][count]);

//}

// 시작 : 0 끝 : 2 증가량 : 1

for(int i = 0;i<score2.lengthi++){

for(int count=0; count<score2[i].lengthcount++){

System.out.println(score2[i][count]);

}

}

 

//score2.length = > 3

//score2[1].length=>4

 

 

//3. 주변사람 6명의 이름을 저장해주세요 name

String[] name ={"이혜인","박대현","김범수","이유진","임기원","김찬기","정윤도","김재형"};

//4. 7과목의 이름을 저장해주세요 subject

String[] subject = {"국","영","수","사","과","Oracle","Java"};

//1. 6명의 7과목의 성적을(정수)를 저장할수 있는 변수 sungjuk을 선언및 생성해주세요

int[][] sungjuk = new int[name.length][subject.length];

//2. sungjuk의 각방을 0~100점사이의 랜덤한 정수값을 저장해주세요

for (int i = 0; i < sungjuk.length i++) {

for (int j = 0; j < sungjuk[i].length j++) {

sungjuk[i][j] = (int)(Math.random()*101);

}

}

//5. 사람별 합계를 구해주세요 nameSum

int[] nameSum = new int[name.length];

for (int i = 0; i < sungjuk.length i++) { //

for (int j = 0; j < sungjuk[i].length j++) {

nameSum[i] += sungjuk[i][j];

}

}

//6. 사람별 평균을 구해주세요 nameAvg

float[] nameAvg = new float[name.length];

for (int i = 0; i < nameAvg.length i++) {//

nameAvg[i] = (int)((float)nameSum[i]/sungjuk[i].length*100+0.5)/100f;

}

//7. 과목별 합계를 구해주세요 subSum

int[] subSum = new int[subject.length];

for (int i = 0; i < subject.length i++) {

for (int j = 0; j < name.length j++) {

subSum[i] += sungjuk[j][i];

}

}

//8. 과목별 평군을 구해주세요 subAvg

float[] subAvg = new float[subject.length];

for (int i = 0; i < subAvg.length i++) {

subAvg[i] = (int)((float)subSum[i]/name.length*100+0.5)/100f;

}

//9. 석차를 구해주세요 rank

int[] rank = new int[name.length];

for (int i = 0; i < name.length i++) { //랭크를 구할사람

rank[i]++;

for (int j = 0; j < name.length j++) { // 비교할사람

if(nameSum[i] < nameSum[j]){

rank[i]++;

}

}

}

 

//0. 아래와 같이 출력해주세요

for (int i = 0; i < subject.length i++) {

System.out.print("\t"+subject[i]);

}

System.out.println("\t합계\t평균\t석차");

for (int i = 0; i < sungjuk.length i++) {

System.out.print(name[i]+"\t");

for (int j = 0; j < sungjuk[i].length j++) {

System.out.print(sungjuk[i][j]+"\t");

}

System.out.println(nameSum[i]+"\t"+nameAvg[i]+"\t"+rank[i]);

}

System.out.print("과목합계\t");

for (int i = 0; i < subSum.length i++) {

System.out.print(subSum[i]+"\t");

}

System.out.println();

System.out.print("과목평균\t");

for (int i = 0; i < subAvg.length i++) {

System.out.print(subAvg[i]+"\t");

}

System.out.println();

 

//select sort

for (int i = 0; i < name.length-1; i++) {

int max = nameSum[i];

int maxBang = i;

for (int j = i+1; j < name.length j++) {

if(max < nameSum[j]){

max = nameSum[j];

maxBang=j;

}

}

int sumTemp = nameSum[i];

nameSum[i] = nameSum[maxBang];

nameSum[maxBang] = sumTemp;

 

float avgTemp = nameAvg[i];

nameAvg[i] = nameAvg[maxBang];

nameAvg[maxBang] = avgTemp;

 

int rankTemp = rank[i];

rank[i] = rank[maxBang];

rank[maxBang] = rankTemp;

 

String nameTemp = name[i];

name[i] = name[maxBang];

name[maxBang] = nameTemp;

 

for (int k = 0; k < subject.length k++) {//k= 과목

int temp = sungjuk[i][k];

sungjuk[i][k] = sungjuk[maxBang][k];

sungjuk[maxBang][k] = temp;

}

 

}

 

System.out.println("====================== sort 후 ===========================");

for (int i = 0; i < subject.length i++) {

System.out.print("\t"+subject[i]);

}

System.out.println("\t합계\t평균\t석차");

for (int i = 0; i < sungjuk.length i++) {

System.out.print(name[i]+"\t");

for (int j = 0; j < sungjuk[i].length j++) {

System.out.print(sungjuk[i][j]+"\t");

}

System.out.println(nameSum[i]+"\t"+nameAvg[i]+"\t"+rank[i]);

}

System.out.print("과목합계\t");

for (int i = 0; i < subSum.length i++) {

System.out.print(subSum[i]+"\t");

}

System.out.println();

System.out.print("과목평균\t");

for (int i = 0; i < subAvg.length i++) {

System.out.print(subAvg[i]+"\t");

}

System.out.println();

 

 

}

}

 

 

 

 

 

 

 

 

반응형