728x90
문제 1.
주어진 배열 항목에서 최대값을 출력하는 코드를 작성해보세요(for문 이용).
int[] array = { 1, 5, 3, 8, 2 };
코드를 다음과 같이 출력가능합니당.
package java1209;
public class array_6 {
public static void main(String[] args) {
int[] array= {1, 5, 3, 8, 2};
int maxi = 0;
for(int i = 0; i<array.length; i++) {
if(array[i] >= maxi) { // array[i] 값이 maxi 보다 크거나 같을때
maxi = array[i]; // array[i] 값을 maxi에 저장한다
}
}
System.out.println("최대값 = " + maxi);
}
}
문제 2.
주어진 배열 항목의 전체 합과 평균을 구해 출력하는 코드를 작성해 보세요 (중첩 for문 이용).
int[][] array = {
{95, 86},
{83, 92, 96},
{78, 83, 93, 87, 88}
};
package java1209;
public class array7 {
public static void main(String[] args) {
int[][] array = {
{95, 86},
{83, 92, 96},
{78, 83, 93, 87, 88}
};
int sum=0;
int avg=0;
for(int i = 0; i < array.length; i++) {
// array.length의 길이 보다 작을때 까지 i 를 증가시켜준다
for(int j = 0; j< array[i].length; j++) {
//array[i]행의 길이보다 작을때 까지 j 를 증가시킨다.
sum += array[i][j];
// sum에 array[i]행일때의 [j]열의 값들을 모두 받고 sum에 더한것을 저장한다.
}
}
avg = sum / (array[0].length + array[1].length + array[2].length);
// array[0]의 길이 , [1]의 길이, [2]의 길이 만큼 더한것으로 sum 을 나눈값을 평균으로 지정한다.
System.out.println(sum);
System.out.println(avg);
}
}
이해가 된다!
주석을 잘보자!!
문제 3.
학생들의 점수를 분석하는 프로그램을 만들려고 합니다.
키보드로부터 학생 수와 각 학생들의 점수를 입력받고 while 문과 Scanner의 nextLine() 메소드를 이용해서 최고 점수 및 평균 점수를 출력하는 코드를 작성해보세요.
| 출력예시 |
| ------------------------------------------------- 1. 학생수 | 2. 점수입력 | 3. 점수리스트 | 4. 분석 | 5. 종료 ------------------------------------------------- 선택> 1 학생수> 3 ------------------------------------------------- 1. 학생수 | 2. 점수입력 | 3. 점수리스트 | 4. 분석 | 5. 종료 ------------------------------------------------- 선택> 2 scores[0]> 85 scores[1]> 95 scores[2]> 93 ------------------------------------------------- 1. 학생수 | 2. 점수입력 | 3. 점수리스트 | 4. 분석 | 5. 종료 ------------------------------------------------- 선택> 3 scores[0] : 85 scores[1] : 95 scores[2] : 93 ------------------------------------------------- 1. 학생수 | 2. 점수입력 | 3. 점수리스트 | 4. 분석 | 5. 종료 ------------------------------------------------- 선택> 4 최고 점수 : 95 평균 점수 : 91.0 ------------------------------------------------- 1. 학생수 | 2. 점수입력 | 3. 점수리스트 | 4. 분석 | 5. 종료 ------------------------------------------------- 선택> 5 프로그램 종료 |
해당 코드는 다음과 같습니당....
package java1209;
import java.util.Scanner;
public class array_7 {
public static void main(String[] args) {
System.out.println();
Scanner sc = new Scanner(System.in);
int[] scores = null;
int choice;
int studNum = 0;
int max=0;
double avg;
int sum = 0;
do {
System.out.println("------------------------------------");
System.out.println("1.학생수|2.점수입력|3.점수리스트|4.분석|5.종료");
System.out.println("------------------------------------");
System.out.print("선택> ");
choice = sc.nextInt();
switch(choice) { // choice 가 뭘까용?
case 1: // choice 가 1일때
System.out.print("학생수> ");
studNum = sc.nextInt(); //학생수를 studNum 으로 입력받아요
scores = new int[studNum]; //배열 scores를 studNum 만큼의 크기로 지정하고 선언합니당
break; // case1을 나와줘요 (여기서 배열은 studNum만큼의 크기로 설정이 됬어요)
case 2:
for(int i=0; i< studNum; i++ ) {
//i가 studNum의 길이가 될때까지 i를 증가시켜줘요
System.out.print("scores[" + i +"] : ");
scores[i] = sc.nextInt();
//i가 studNum이 될때까지 반복되면서 해당 print문과 scanner가 실행되면서 i만큼 값을 저장해요.
}
break;
case 3:
for(int i=0; i< studNum; i++) {
//i가 studNum의 길이가 될때까지 i를 증가시켜줘요. 그냥 외웁시당.
System.out.println("scores[" + i +"] : " + scores[i]);
//i가 studNum이 될때까지 scores의 값을 print로 출력해줘요.
}
break;
case 4:
for(int i=0; i< studNum; i++) {
//i가 studnNum이 될때까지 i를 증가시켜줘요.
//여기서는 평균을 구하기위한 합계와 최대값을 구할거에요.
sum += scores[i];
// sum에 i가 반복되는만큼의 scores를 가산해줘요.
if(scores[i] >= max) {
// 최대값을 구해봅시다.
// i번 돌때까지 max(최대값)을 비교할거에요.
// max값이 scores[i]의 값보다 작을때
max = scores[i];
// max에 해당 scores[i]를 대입시켜줘요.
}
}
avg = sum / (double)(scores.length);
// avg 평균을 구할거에요. 앞서 구한 sum을 scores의 길이만큼 (배열의 개수)나눠줘요.
System.out.println("최고 점수 : " + max);
System.out.println("평균 점수 : " + avg);
}
}while(choice != 5);
System.out.println("프로그램 종료");
}
}
진짜 구상을 더해봐야겠어요...너무 어렵다...
문제4.
10명의 학생들의 점수들을 입력 받아 평균을 구하고 각 점수가 평균 이상인지,
혹은 평균 이하인지 보여준다.
| 출력예제 |
| 학생들 10명의 점수를 입력하세요 : 89 65 47 92 84 70 76 98 85 51 |
| 평균 = 75.7 점수 89점은 평균 이상이다. 점수 65점은 평균보다 작다. 평균 47점은 평균보다 작다. 평균 92점은 평균 이상이다. 평균 84점은 평균 이상이다. 평균 70점은 평균보다 작다. 평균 76점은 평균 이상이다. 평균 98점은 평균 이상이다. 평균 85점은 평균 이상이다. 평균 51점은 평균보다 작다. |
문제5.
입력할 점수들의 수를 입력하세요 : 5
1번째 점수를 입력하세요 : 56
2번째 점수를 입력하세요 : 74
3번째 점수를 입력하세요 : 46
4번째 점수를 입력하세요 : 52
5번째 점수를 입력하세요 : 63
본래 순서의 점수들
56 74 46 52 63
반대 순서의 점수들
63 52 46 74 56
오름차순의 점수들
46 52 56 63 74
내림차순의 점수들
74 63 56 52 46
- 이해 해버리기 -
package java1209;
import java.util.Scanner;
public class array8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] grade = null;
int num=0;
System.out.print("입력 할 점수들의 수를 입력하세요: ");
num = sc.nextInt();
grade = new int[num];
for(int i=0; i<grade.length; i++) {
System.out.print( i+1 + "번째 점수를 입력하세요 : ");
grade[i] = sc.nextInt();
}
System.out.println();
System.out.println("본래 순서의 점수들");
for(int i=0; i<grade.length; i++) {
System.out.print(grade[i] + " ");
}
System.out.println();
System.out.println("반대 순서의 점수들");
for(int i=0; i<grade.length; i++) {
System.out.print(grade[grade.length-1 - i] + " ");
}
System.out.println();
}
}
728x90
'JAVA > 연습장!' 카테고리의 다른 글
| 클래스 , class 연습문제! (0) | 2022.12.13 |
|---|---|
| 메소드, 연습 - java (0) | 2022.12.12 |
| while문, if, for문 연습장 (0) | 2022.12.09 |
| while문 연습장! (2) | 2022.12.08 |
| 조건문 - 연습문제 (0) | 2022.12.07 |