본문 바로가기
Java & Kotlin/Java

20.11.09 - 배열 예제

by heekng 2021. 1. 19.
반응형
 

1. 총합과 평균

배열의 모든 요소를 더해서 총점과 평균을 구하기

10개의 정수를 입력 받아서 배열에 넣고 총점과 평균을 구하여 출력하세요.

1

2

3

4

5

6

7

8

9

10

11

Scanner sc = new Scanner(System.in); //스캐너 생성

int [] intArr = new int [10]; //값을 넣을 배열 생성

int sum = 0;

double avg =0;

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

System.out.print(i+1+"번째 정수 입력: ");

intArr[i] = sc.nextInt(); //정수 이력

sum += intArr[i]; //sum에 모든 정수 반복 추가

}

avg = sum / intArr.length;

System.out.println("총점: "+sum+" 평균: "+avg);


2. 최대값과 최소값 구하기

10개의 실수를 입력 받아서 배열에 넣고 최대값과 최소값을 구하여 출력하세요.

1

2

3

4

5

6

7

8

9

10

Scanner sc = new Scanner(System.in); //스캐너 생성

double [] dArr = new double [10]; //double타입 배열 생성

double max = -999.0, min = 999;

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

System.out.print(i+1+"번째 실수 입력: ");

dArr[i] = sc.nextDouble(); //실수 입력

if(max < dArr[i]) max = dArr[i]; //max값과 비교하여 max보다 더 크면 max에 넣는다.

if(min > dArr[i]) min = dArr[i]; //min값과 비교하여 min보다 더 작으면 min에 넣는다.

}

System.out.println("최댓값: "+max+"최솟값"+min);


3. 다음과 같이 배열에 넣어서 구하시오

번호

국어

영어

합계

평균

석차

1

100

90

190

95

1

2

80

80

160

80

4

3

90

80

170

85

3

4

80

100

180

90

2

5

60

60

120

60

5

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

Scanner sc = new Scanner(System.in); //스캐너 생성

int arr [][] = new int [5][6]; //5행6열의 int타입의 2차원 배열 생성

int rank [] = {1, 1, 1, 1, 1}; //등수를 저장할 int타입의 배열 생성

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

arr[i][0] = i+1; //번호

System.out.print(i+1+"번 학생 국어 점수는? ");

arr[i][1] = sc.nextInt(); //국어점수 입력

System.out.print(i+1+"번 학생 영어 점수는? ");

arr[i][2] = sc.nextInt(); //영어점수 입력

arr[i][3] = arr[i][1] + arr[i][2]; //합

arr[i][4] = arr[i][3] / 2; //평균

}

//등수 비교후 입력

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

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

if(arr[i][4] < arr[j][4]) {

rank[i]++;

}

}

arr[i][5] = rank[i];

}

System.out.println("번호\t국어\t영어\t합계\t평균\t등수");

for (int[] is : arr) {

for (int is2 : is) {

System.out.print(is2+"\t");

}System.out.println();

}


4. 빈도수 구하기

문자를 15자로 입력하세요 ==> javajspspringaa

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

Scanner sc = new Scanner(System.in); //스캐너 생성

int cnt = 0;

String str = "";

char charArr [] = new char [15]; //입력받은 문자열을 char타입으로 바꾸어 저장할 길이 15 char 배열

char alpha [] = new char [15]; //각각의 문자를 저장할 배열

int cntArr [] = new int [15]; //alpha의 인덱스마다의 해당하는 문자의 수를 넣을 배열

boolean sw = false;

 

do {

System.out.print("문자를 15자 이내로 입력하세요.: ");

str = sc.next(); //문자열 입력받기

} while (str.length() > 15);

//배열 초기화

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

alpha[i] = ' ';

cntArr[i] = 0;

}

//문자열을 문자 배열로 바꾸어 저장

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

charArr[i] = str.charAt(i);

}

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

sw = false; //다시 시작할 때마다 sw false

for (int j = 0; j < alpha.length; j++) { //해당 문자가 alpha배열에 있는지 확인

if(alpha[j] == charArr[i]) {

sw = true; //존재하면 스위치 true

}

}

if(!sw) { //해당 문자가 alpha배열에 없을 때

alpha[cnt] = charArr[i]; //해당 문자를 alpha에 넣는다.

cnt++;

}

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

if(alpha[j] == charArr[i]) { //alpha에 해당 문자가 존재한다면

cntArr[j]++; //alpha에 존재하는 문자의 인덱스와 cntArr의 같은 인덱스에 +1

}

}

}

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

if(cntArr[i] != 0) { //문자가 있을 때만 출력 (배열의 빈 공간 출력하지 않는다.)

System.out.println(alpha[i]+": "+cntArr[i]+'개');

}

}


5. 로또 랜덤 프로그램

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

int lotto [] = new int [7]; //길이 7의 int 배열

boolean sw1 = true;

boolean sw2 = true;

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

sw1 = true;

while(sw1) { //중복되지 않은 수가 랜덤으로 나올 때 까지 반복

sw2 = true;

int num = (int)(Math.random()*45) + 1;

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

if(lotto[j] == num) {

sw2 = false;

break;

}

}

if(sw2) {

lotto[i] = num;

sw1 = false;

}

}

}

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

if(i != lotto.length-1) {

System.out.print(lotto[i]+" ");

}else {

System.out.println("보너스: "+lotto[i]);

}

}

반응형