Quest
[과제] 배열
_유니
2023. 9. 11. 14:55
문제1 - 배열을 사용해서 변경
다음 문제를 배열을 사용해서 개선하자.
정답
package array.ex;
public class ArrayExRef {
public static void main(String[] args) {
int[] students = {90, 80, 70, 60, 50};
int total = 0;
for (int i = 0; i < students.length; i++) {
total += students[i];
}
double average = (double) total / 5;
System.out.println("점수 총합: " + total);
System.out.println("점수 평균: " + average);
}
}
문제2 - 배열의 입력과 출력
사용자에게 5개의 정수를 입력받아서 배열에 저장하고, 입력 순서대로 출력하자.
출력 시 출력 포맷은 1, 2, 3, 4, 5와 같이 , 쉼표를 사용해서 구분하고, 마지막에는 쉼표를 넣지 않아야 한다.
package array.ex;
import java.util.Scanner;
public class ArrayEx2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] number = new int[5];
System.out.println("5개의 정수를 입력하세요: ");
for (int i = 0; i < number.length; i++) {
number[i] = scanner.nextInt();
}
System.out.println("출력");
for (int i = 0; i < number.length; i++) {
System.out.print(number[i]);
if (i < number.length - 1) {
System.out.print(", ");
}
}
}
}
실행 결과
문제3 - 배열과 역순 출력
사용자에게 5개의 정수를 입력받아서 배열에 저장하고, 입력받은 순서의 역순으로 출력하자.
출력 시 출력 포맷은 5, 4, 3, 2, 1과 같이 , 쉼표를 사용해서 구분하고, 마지막에는 쉼표를 넣지 않아야 한다.
package array.ex;
import java.util.Scanner;
public class ArrayEx3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] number = new int[5];
System.out.println("5개의 정수를 입력하세요: ");
for (int i = 0; i < number.length; i++) {
number[i] = scanner.nextInt();
}
System.out.println("출력");
for (int i = 4; i >= 0; i--) {
System.out.print(number[i]);
if (i > 0) {
System.out.print(", ");
}
}
}
}
실행 결과
문제4 - 합계와 평균
사용자에게 5개의 정수를 입력받아서 정수의 합계와 평균을 계산하는 프로그램을 작성하자.
package array.ex;
import java.util.Scanner;
public class ArrayEx4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] numbers = new int[5];
int sum = 0;
double average ;
System.out.println("5개의 정수를 입력하세요: ");
for (int i = 0; i < 5; i++) {
numbers[i] = scanner.nextInt();
sum += numbers[i];
}
average = (double) sum / 5;
System.out.println("입력한 정수의 합계: " + sum);
System.out.println("입력한 정수의 평균: " + average);
}
}
실행 결과
문제5 - 합계와 평균
이전 문제에서 입력받을 숫자의 개수를 입력받도록 개선하자.
package array.ex;
import java.util.Scanner;
public class ArrayEx5 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("입력받을 숫자의 개수를 입력하세요: ");
int count = scanner.nextInt();
int[] numbers = new int[count];
int sum = 0;
double average ;
System.out.println(count + "개의 정수를 입력하세요: ");
for (int i = 0; i < count; i++) {
numbers[i] = scanner.nextInt();
sum += numbers[i];
}
average = (double) sum / count;
System.out.println("입력한 정수의 합계: " + sum);
System.out.println("입력한 정수의 평균: " + average);
}
}
실행 결과
문제6 - 가장 작은 수, 큰 수 찾기
사용자로부터 n개의 정수를 입력받아 배열에 저장한 후, 배열 내에서 가장 작은 수와 가장 큰 수를 찾아 출력하는 프로그램을 작성하자.
package array.ex;
import java.util.Scanner;
public class ArrayEx6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("입력받을 숫자의 개수를 입력하세요: ");
int n = scanner.nextInt();
int[] numbers = new int[n];
int minNumber, maxNumber;
System.out.println(n + "개의 정수를 입력하세요.");
for (int i = 0; i < n; i++) {
numbers[i] = scanner.nextInt();
}
minNumber = maxNumber = numbers[0];
for (int i = 1; i < n; i++) {
if (numbers[i] < minNumber) {
minNumber = numbers[i];
}
if (numbers[i] > maxNumber) {
maxNumber = numbers[i];
}
}
System.out.println("가장 작은 정수: " + minNumber);
System.out.println("가장 큰 정수: " + maxNumber);
}
}
실행 결과
문제7 - 2차원 배열1
사용자로부터 4명 학생의 국어, 수학, 영어 점수를 입력받아 각 학생의 총점과 평균을 계산하는 프로그램을 작성하자.
package array.ex;
import java.util.Scanner;
public class ArrayEx7 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[][] scores = new int[4][3];
String[] subjects = {"국어", "영어", "수학"};
for (int i = 0; i < 4; i++) {
System.out.println((i + 1) + "번 학생의 성적을 입력하세요.");
for (int j = 0; j < 3; j++) {
System.out.print(subjects[j] + " 점수: ");
scores[i][j] = scanner.nextInt();
}
}
for (int i = 0; i < 4; i++) {
int total = 0;
for (int j = 0; j < 3; j++) {
total += scores[i][j];
}
double average = total / 3.0;
System.out.println((i + 1) + "번 학생의 총점: " + total + ", 평균: " + average);
}
}
}
실행 결과
문제8 - 2차원 배열2
이전 문제에서 학생 수를 입력받도록 개선하자
package array.ex;
import java.util.Scanner;
public class ArrayEx8 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("학생 수를 입력하세요: ");
int studentCount = scanner.nextInt();
int[][] scores = new int[studentCount][3];
String[] subjects = {"국어", "영어", "수학"};
for (int i = 0; i < studentCount; i++) {
System.out.println((i + 1) + "번 학생의 성적을 입력하세요.");
for (int j = 0; j < 3; j++) {
System.out.print(subjects[j] + " 점수: ");
scores[i][j] = scanner.nextInt();
}
}
for (int i = 0; i < studentCount; i++) {
int total = 0;
for (int j = 0; j < 3; j++) {
total += scores[i][j];
}
double average = total / 3.0;
System.out.println((i + 1) + "번 학생의 총점: " + total + ", 평균: " + average);
}
}
}
실행 결과