일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- fragment
- JS
- Linux
- 스프링부트
- Javscript
- Java
- npm
- button
- JavaScript
- SpringBoot
- TypeScript
- RecyclerView
- 자바스크립트
- 랜덤번호
- stylesheet
- nodejs
- 코틀린
- scrollview
- Hook
- 안드로이드
- Kotlin
- Android
- 랜덤넘버
- React
- GoogleMaps
- 오버라이딩
- 구글맵스
- array
- 리액트
- TextView
- Today
- Total
타닥타닥 개발자의 일상
자바java 2차원 배열 이용하여 학생들의 정보, 점수 2차원 배열에 입력 받고 총점, 등수 출력하기 본문
// 학생들의 정보를 2차원배열에 입력을 받는다 (이름, 생년월일, 국어, 영어, 수학)
//2차원 배열을 이용하여 학생들 개개인의 국영수 총점, 학생들의 국어 점수 총점, 학생들의 등수를 출력하라
import java.util.Arrays;
import java.util.Scanner;
public class StudentA {
public static void main(String[] args) {
String student[][] =
{ // 국어 영어 수학
{ "홍길동", "1999-01-23", "100", "90", "75" },
{ "성춘향", "2010-07-04", "90", "100", "95" },
{ "일지매", "2001-03-05", "85", "95", "100" },
};
int sum[] = sumFunc(student);
for (int i = 0; i < sum.length; i++) {
System.out.print(student[i][0] + "의 총점:" + sum[i] + "\n");
}
int langSum = languageSum(student);
System.out.println("국어의 합계점수:" + langSum);
int index = classTop(sum); System.out.println
("클래스의 1등은 " + student[index][0] + "님입니다");
}
static String[][] input(){ //문자열 배열을 자료형으로 출력하는 input이란 이름을 가진 함수
Scanner sc = new Scanner(System.in);
String student[][] = null; //student라는 이차원 배열을 null로 초기화
System.out.print("학생 수 = ");
int count = sc.nextInt(); //입력받은 수를 count라는 정수형 변수로 지정
student = new String[count][5]; //student라는 2차원 배열은 count수를 행의수, 5를 열의 수로하는 2차원 배열로 초기화
for (int i = 0; i < student.length; i++) { //1행에 있는 변수값(5개) 돌고 2행으로 가서 다시 돈다 그걸 count수만큼 반복.
System.out.print("이름:"); //이름:이란 출력화면이 뜨고 입력한 값은 문자형 name이라는 변수로 저장
String name = sc.next();
System.out.print("생년월일:");
String birth = sc.next();
System.out.print("국어:");
String lang = sc.next();
System.out.print("영어:");
String eng = sc.next();
System.out.print("수학:");
String math = sc.next();
student[i][0] = name; //i행 0열의 값 name
student[i][1] = birth;
student[i][2] = lang;
student[i][3] = eng;
student[i][4] = math;
}
return student; //위에서 정의된 student라는 이차원 배열로 값 전달, student 이차원 배열 return값으로 초기화
}
// 각 학생들의 국어, 영어, 수학을 합친 총점은? 개개인의 총점
static int[] sumFunc(String[][] student) { //2차원 배열을 입력 받아 정수형 1차원 배열을 출력하는 SumFunc
int sum[] = new int[student.length]; //sum은 2차원배열 student의 행의 수를 변수 개수로 가지는 1차원 정수형 배열
int temp; // 1명분에 대한 성적의 합계
for (int j = 0; j < student.length; j++) { //2차원 배열 student의 행의 수만큼 반복되는 동안
temp = 0;
for (int k = 2; k < student[j].length; k++) { // j행의 2번째 열부터 반복되는 동안
temp = temp + Integer.parseInt(student[j][k]); //temp 는 student[j][k]값을 정수형으로 변환한 값의 합
}
sum[j] = temp; //1차원 배열 sum의 변수들은 temp의 값
}
return sum; //1차원 배열 sum을 반환
}
//국어점수 합계
static int languageSum(String student[][]) {
int langSum = 0;
for (int i = 0; i < student.length; i++) {
langSum = langSum + Integer.parseInt(student[i][2]);
}
return langSum;
}
static int classTop(int sum[]) {
int top = sum[0];
int index = 0;
for (int i = 0; i < sum.length; i++) {
if(sum[i] > top) {
top = sum[i];
index = i;
}
}
return index;
}
}
출력화면 |
홍길동의 총점:265 성춘향의 총점:285 일지매의 총점:280 국어의 합계점수:275 클래스의 1등은 성춘향님입니다 |