6 분 소요


1. 연습문제

연습문제 #1

문제

키보드로부터 한 개의 정수 값을 입력받는다. 키보드로부터 받은 정수로 5의 배수의 개수와 합을 구하여 화면에 출력하는 프로그램을 작성하시오. (출력 내용 : 5의 배수의 개수, 5의 배수의 합)


정답

import java.util.Scanner;

public class _Quiz_ {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		System.out.print("정수를 입력하세요 : ");

		int intVal = scanner.nextInt();
		int count = intVal / 5;
		int total = 0;

		for (int i = 0; i <= intVal; i += 5) {
			total += i;
		}

		System.out.println("정수 입력 값 : " + intVal);
		System.out.println("5의 배수의 갯수 : " + count);
		System.out.println("5의 배수의 합 : " + total);

        scanner.close();
	}
}


연습문제 #2

문제

키보드로부터 두 개의 정수 값을 입력받아서 if-else 문을 이용하여 큰 값과 작은 값을 구하는 프로그램을 작성하시오.


정답

import java.util.Scanner;

public class _Quiz_ {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		System.out.print("첫 번째 정수를 입력하세요 : ");
		int a = scanner.nextInt();

		System.out.print("두 번째 정수를 입력하세요 : ");
		int b = scanner.nextInt();

		if (a > b) {
			System.out.println("큰 값은 " + a + "입니다.");
			System.out.println("작은 값은 " + b + "입니다.");
		} else {
			System.out.println("큰 값은 " + b + "입니다.");
			System.out.println("작은 값은 " + a + "입니다.");
		}

		scanner.close();

	}
}


연습문제 #3

문제

  • 키보드로부터 두 개의 정수 값을 입력받아서 곱을 구하는 프로그램을 작성하시오.
  • 단, 입력 받은 2개의 정수 값의 곱이 500을 초과하면 프로그램을 중단한다. (while 문, break 문 사용)


정답

import java.util.Scanner;

public class _Quiz_ {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		System.out.print("첫 번째 정수를 입력하세요 : ");
		int a = scanner.nextInt();

		System.out.print("두 번째 정수를 입력하세요 : ");
		int b = scanner.nextInt();

		int division = a * b;
		while (true) {
			if (division > 500) {
				System.out.println("두 수의 곱이 500을 초과하였습니다.");
				break;
			} else {
				System.out.println("a * b = " + division);
				break;
			}

		}
		scanner.close();
	}
}


연습문제 #4

문제

  • 한 학생의 자바 점수인 출석, 과제, 중간시험, 기말시험 점수(각각 100점 만점)를 키보드로부터 정수로 입력 받아 학점을 계산하여 출력하는 프로그램을 작성하시오. (if문, switch문, 배열 사용)
  • 조건
    • 출석 20%, 과제 20%, 중간시험 30%, 기말시험 30%로 하여 100점 만점
    • 최대 점수 : 출석 20, 과제 20, 중간고사 30, 기말고사 30
    • 학점 : 90~100:A, 80~89:B, 70~79:C, 60~69:D, 0~59:F


정답

import java.util.Scanner;

public class _Quiz_ {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		int arr[] = { 0, 0, 0, 0 }; // 점수를 저장한 배열 선언

		System.out.print("출석 점수를 입력하세요. (100점 만점) : ");
		arr[0] = scanner.nextInt();
		if (arr[0] > 100) {
			System.out.println("출석 점수는 100점을 초과할 수 없습니다. 다시 입력해 주세요.");
			arr[0] = scanner.nextInt();
		}

		System.out.print("과제 점수를 입력하세요. (100점 만점) : ");
		arr[1] = scanner.nextInt();
		if (arr[1] > 100) {
			System.out.println("과제 점수는 100점을 초과할 수 없습니다. 다시 입력해 주세요.");
			arr[1] = scanner.nextInt();
		}

		System.out.print("중간 점수를 입력하세요. (100점 만점) : ");
		arr[2] = scanner.nextInt();
		if (arr[2] > 100) {
			System.out.println("중간 점수는 100점을 초과할 수 없습니다. 다시 입력해 주세요.");
			arr[2] = scanner.nextInt();
		}

		System.out.print("기말 점수를 입력하세요. (100점 만점) : ");
		arr[3] = scanner.nextInt();
		if (arr[3] > 100) {
			System.out.println("기말 점수는 100점을 초과할 수 없습니다. 다시 입력해 주세요.");

		}

		float sumScore = (float) ((arr[0] * 0.2) + (arr[1] * 0.2) + (arr[2] * 0.3) + (arr[3] * 0.3));
		System.out.println("총점: " + sumScore+"점");

		// 학점 계산
		int grade = (int) (sumScore / 10);
		switch (grade) {
		case 10:
		case 9:
			System.out.println("당신의 학점은 " + "A" + "학점 입니다.");
			break;
		case 8:
			System.out.println("당신의 학점은 " + "B" + "학점 입니다.");
			break;
		case 7:
			System.out.println("당신의 학점은 " + "C" + "학점 입니다.");
			break;
		case 6:
			System.out.println("당신의 학점은 " + "D" + "학점 입니다.");
			break;
		default:
			System.out.println("당신의 학점은 " + "F" + "학점 입니다.");
		}
		scanner.close();
	}
}


연습문제 #5

문제

  • 세일기간 중에 백화점에서 상품을 구입하였다. 키보드로부터 상품의 단가와 수량을 입력받아 지불 금액과 할인율을 계산하여 출력하는 프로그램을 작성하시오. (출력내용 : 상품단가, 상품수량, 지불금액, 할인율)
  • 조건
    • 총 상품 구입금액이 50만원 이상일 때 30%를 할인하고, 총 상품 구입금액이 100만원 이상일 때 40%를 할인한다.
    • 지불 금액은 “상품단가 * 수량”으로 계산한다.


정답

import java.util.Scanner;

public class _Quiz_ {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		System.out.print("상품의 가격을 입력하세요 : ");
		int price = scanner.nextInt();

		System.out.print("상품의 갯수을 입력하세요 : ");
		int number = scanner.nextInt();

		int total = price * number;

		int sale = 0;
		if (total >= 1000000) {
			sale = 40;
			total = (int) (total * 0.6);
		} else if (total >= 500000) {
			sale = 30;
			total = (int) (total * 0.7);
		}

		System.out.println("상품 가격 : " + price + "원");
		System.out.println("상품 갯수 : " + number + "개");
		System.out.println("지불 금액 : " + total + "원");
		System.out.println("할인율 : " + sale + "%");

		scanner.close();
	}
}


연습문제 #6

문제

중첩된 for문을 사용하여 2차원 배열에 구구단을 저장한 후에, 화면에 출력하는 프로그램을 작성하시오. 출력도 중첩된 for문을 사용한다. (중첩 for문, 배열 사용)


정답

배열 미사용

import java.util.Scanner;

public class _Quiz_ {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		for (int i = 2; i <= 9; i++) {
			for (int j = 1; j <= 9; j++) {
				System.out.print(i + " x " + j + " = " + i * j + "\t");
			}
			System.out.println("");
		}
		scanner.close();
	}
}


배열 사용

import java.util.Scanner;

public class _Quiz_ {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		// 2차원 배열 선언
		int[][] multiplicationTable = new int[10][10];

		// 구구단 계산 후 배열 저장
		for (int i = 2; i <= 9; i++) {
			for (int j = 1; j <= 9; j++) {
				multiplicationTable[i][j] = i * j;
			}

		}

		// 구구단 출력
		for (int i = 2; i <= 9; i++) {
			for (int j = 1; j <= 9; j++) {
				System.out.print(i + " x " + j + " = " + multiplicationTable[i][j]+"\t");
			}
			System.out.println("");
		}
		scanner.close();
	}
}



2. 실습문제

실습문제 #1

문제

다음의 프로그램은 숫자를 키보드로 입력받아서 역순으로 출력한다. 다음과 같은 결과가 나오도록 프로그램을 완성하시오.


정답

import java.util.Scanner;

public class _Quiz_ {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		System.out.print("숫자를 입력하세요 : ");
		int inputNum = scanner.nextInt();

		int reverseNum = 0;
		while (inputNum > 0) {
			reverseNum = inputNum % 10 + reverseNum * 10;
			inputNum /= 10; // 다음 자리수로 이동
		}

		System.out.println("바뀐 숫자 : " + reverseNum);

		scanner.close();
	}
}


실습문제 #2

문제

  • 키보드로부터 5개의 정수를 입력 받아서 최대값을 구하여 출력하는 프로그램을 작성하시오. (출력 내용 : 제목, 입력 값, 최대 값)
  • for문, 배열 사용


정답

import java.util.Scanner;

public class _Quiz_ {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		int[] arrNum = new int[5];

		// 정수 입력받기
		for (int i = 0; i < 5; i++) {
			System.out.print("정수를 입력하세요. " + "[" +( i + 1) + "/5] : ");
			arrNum[i] = scanner.nextInt();
		}

		// 최대 값 구하기
		int max = arrNum[0];
		for (int i = 0; i < 5; i++) {
			if (arrNum[i] > max) {
				max = arrNum[i];
			}
		}

		System.out.println("최대 값 : " + max);

		scanner.close();
	}
}


실습문제 #3

문제

키보드를 통하여 임의의 정수 10개를 입력하여 오름차순으로 정렬하고, 데이터의 합과 평균을 구하여 출력한다. 다음과 같이 출력하는 프로그램을 빈칸을 채워서 완성하시오. (for문, 배열 사용)


구현 방법

버블 정렬 알고리즘 사용🫧


정답

package work;

import java.util.Scanner;

public class _실습문제04_ {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int[] inputValue = new int[10];

		System.out.println("정수 10개를 입력하세요 : ");
		for (int i = 0; i < inputValue.length; i++) {
			inputValue[i] = scanner.nextInt();
		}

		System.out.print("입력 데이터 값 : ");
		for (int i = 0; i < inputValue.length; i++) {
			System.out.print(inputValue[i] + "..");
		}
		System.out.println();

		// 오름차순 정렬(버블 정렬)
		int temp = 0;
		for (int i = 0; i < inputValue.length - 1; i++) {
			for (int j = 0; j < inputValue.length - 1 - i; j++) {
				if (inputValue[j] > inputValue[j + 1]) {
					temp = inputValue[j];
					inputValue[j] = inputValue[j + 1];
					inputValue[j + 1] = temp;
				}
			}
		}

		// 합계 구하기
		int sum = 0;
		for (int i = 0; i < inputValue.length; i++) {
			sum += inputValue[i];
		}
		// 평균 구하기
		int everage = sum / inputValue.length;

		System.out.print("오름차순 데이터 값 : ");
		for (int i = 0; i < inputValue.length; i++) {
			System.out.print(inputValue[i] + "..");
		}
		System.out.println();

		System.out.println("합계 : " + sum);
		System.out.println("평균 : " + everage);

		scanner.close();
	}
}


카테고리:

업데이트:

댓글남기기