일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Do while
- switch-case
- 접근제한자
- 간단한 연산
- 표 구현
- 업다운 게임
- 객체 배열
- IF else
- 반복문
- SQLIntegrityConstraintViolationException
- 할당 연산자
- 형변환 연산자
- 관계 연산자
- Scanner
- DropDown
- 배열 array
- color code
- 삼항(조건) 연산자
- 컬렉션프레임워크
- 논리 연산자
- 변수
- var 변수
- count_program
- 변수 기본형
- Math 함수
- Style Sheet
- decimalformat
- 유효성 검사
- 문자열 비교
- 가위바위보 게임
- Today
- Total
무룩 공부방
[Java] 44. 배열 (6) 2차원 배열 성적표 예제(Eclipse) 본문
# 문제
2차원 배열 성적표를 만드시오
<조건>
int[][] score = new int[][] {
{100, 100, 100},
{50, 50, 50},
{40, 40, 40},
{10, 10, 10}
};
<출력>
번호 국어 영어 수학 총점 평균
1 100 100 100 300 100
2 50 50 50 150 50
3 40 40 40 120 40
4 10 10 10 30 10
-----------------------------------------------------
총점 200 200 200
package java01_basic;
import java.util.Scanner;
public class Java44 {
public static void main(String[] args) {
// 2차원 배열 성적표
int[][] score = new int[][] {
{100, 100, 100},
{50, 50, 50},
{40, 40, 40},
{10, 10, 10}
};
int sum = 0;
double avg = 0;
System.out.println("번호\t국어\t영어\t수학\t총점\t평균");
for(int i = 0; i < score.length; i++) {
System.out.print((i+1)+"\t");
for(int j = 0; j < score[i].length; j++) {
sum += score[i][j];
System.out.print(score[i][j]+"\t");
}
avg = sum / 3.0;
System.out.println(sum+"\t"+(int)avg);
sum = 0;
avg = 0;
}
System.out.println("--------------------------------------------");
System.out.print("총점\t");
for(int i = 0; i < score[i].length; i++) { // 3
for(int j = 0; j < score.length; j++) { // 4
sum += score[j][i];
}
System.out.print(sum+"\t");
sum = 0;
}
}
}
<출력>
# 추가
과목별 총점을 구할 때 총점을 변수에 저장하여 출력하고 초기화하는 과정을 반복했었는데 사실 문제는 없다.
다만 다른 문제와 연계되거나 다른곳에 상호작용을 하게 될 경우 변수를 만들어 처리하면 더 좋다.
int tkor = 0;
int teng = 0;
int tmat = 0;. // 각 과목의 총점
tkor += score[i][0];
teng += score[i][1];
tmat += score[i][2]; // 총점 누적
System.out.println(tkor+"\t"+teng+"\t"+tmat); // 총점 출력
코드를 수정하면 아래와 같다.
package java01_basic;
import java.util.Scanner;
public class Java44 {
public static void main(String[] args) {
// 2차원 배열 성적표
int[][] score = new int[][] {
{100, 100, 100},
{50, 50, 50},
{40, 40, 40},
{10, 10, 10}
};
int sum = 0;
double avg = 0;
int tkor = 0;
int teng = 0;
int tmat = 0;
System.out.println("번호\t국어\t영어\t수학\t총점\t평균");
for(int i = 0; i < score.length; i++) {
System.out.print((i+1)+"\t");
for(int j = 0; j < score[i].length; j++) {
sum += score[i][j];
System.out.print(score[i][j]+"\t");
}
avg = sum / 3.0;
System.out.println(sum+"\t"+(int)avg);
sum = 0;
avg = 0;
tkor += score[i][0];
teng += score[i][1];
tmat += score[i][2];
}
System.out.println("--------------------------------------------");
System.out.print("총점\t");
System.out.println(tkor+"\t"+teng+"\t"+tmat);
}
}
'IT > Java01_Beginner' 카테고리의 다른 글
[Java] 46. 배열 (8) 순위 알고리즘 (Eclipse) (0) | 2023.09.05 |
---|---|
[Java] 45. 배열 (7) 가변 배열 (Eclipse) (0) | 2023.09.05 |
[Java] 43. 배열 (5) 2차원 배열(Eclipse) (0) | 2023.09.05 |
[Java] 42. 배열 (4) 향상된 for문, 열거형 타입(Eclipse) (0) | 2023.09.05 |
[Java] 41. 배열 (3) 최대값, 최소값, 선택정렬 (Eclipse) (0) | 2023.09.05 |