카테고리 없음

Quiz02 두번째

달덩이>< 2022. 9. 16. 20:54

6. 입력된 정수들에 대하여, 전체 양수의 갯수, 음수의 갯수, 전체 평균값을 구하시오.

package q02.quiz02;

import java.util.Scanner;

// while문을 이용하여 입력된 정수들에 대하여, 입력한 양수의 전체 개수, 음수의 전체 개수,
// 전체 평균값을 구하여 출력하시오.

public class Quiz06 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		int input_number;
		int sum = 0;
		int positive_integer = 0;
		int negative_integer = 0;
		double average;
		
		do {
			System.out.println("정수를 입력하세요. 단, 입력한 숫자가 0이면 종료합니다.");
			input_number = input.nextInt();
			sum += input_number;
			if (input_number > 0) {
				positive_integer++;
			} if (input_number < 0) {
				negative_integer++;
			} average = (double) sum/ (double) (positive_integer + negative_integer);
			
		} while (input_number != 0);
		
		System.out.println("양의 정수 숫자 " + positive_integer + "개 " + "음의 정수 숫자 " 
							+ negative_integer + "개 " + "전체 합 : " + sum + "전체 평균값 : " +average); 
		
	}
}

 

  1. 이번 문제는 우리가 정수를 입력하고 그 정수에 대하여 양수의 갯수와, 음수의 갯수, 전체 합, 전체 평균을 구하는 문제이다.
  2. 우리가 정수를 직접 입력하기 위해 Scanner를 사용해준다.
  3. 그 다음 do ~ while 문을 사용하여 정수를 입력하되, 0을 입력하면 프로그램이 종료된다는 문구를 입력해준다.
  4. do ~ while 문안에 중첩 if 문을 사용하여 우리가 입력한 값이 양수와 음수일 경우의 갯수를 세준다.
  5. 중첩 if 문 밖에는 averge 변수에 전체 평균을 구하는 식을 입력해준다.
  6. 마지막으로 while 문에 우리가 입력한 정수가 0이면 while 문을 빠져나오게 해준다.

위 사진은 위 코딩의 결과를 Console 창에 나타낸 것이다.



7. 매월 적금 금액과 1년 이자율을 키보드에서 읽어, 6개월 후의 이자와 원금의 총금액을 구하시오.

package q02.quiz02;

import java.util.Scanner;

// 매월 적금 금액과 1년 이자율을 키보드에서 읽어, 6개월 후의 이자와 원금을 합한 총금액을 출력하시오.

public class Ouiz07 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		System.out.println("매월 적금 금액을 입력하세요.");
		double money = input.nextDouble();
		
		System.out.println("이자율을 입력하세요.");
		double interest = input.nextDouble();
		
		interest = (interest/12)/100;
		
		double ch_money = 0;
		
		for (int a=1; a<=6; a++) {
			ch_money = (money + ch_money) * (1+interest);
			
			System.out.println(a + "개월 후의 금액 : " + ch_money);
		}
		

	}

}

 

  1. 이번 문제는 Quiz01에서 했던 이자율 문제를 for 문을 사용하여 해보았다.
  2. 우리가 직접 입력하기 위해 Scanner를 사용해주고, println()을 이용하여 "매월 적금 금액을 입력하세요."라는 문구와 "이자율을 입력하세요."라는 문구가 출력되게 해준다.
  3. interest라는 변수에 이자율 식을 넣어주고, for 문을 이용하여 6개월이니 1부터 6까지 반복해주는 반복문을 만들어준다.

위 사진은 위 코딩의 결과를 Console 창에 나타낸 것이다.( 매월 적금 금액이 100만원이고, 이자율이 1.2일 때  6개월동안의 이자율 계산 결과이다.)



8. 전체 학생수와  각 학생별 점수를 입력받아 전체 학생 중 최고점수를 출력하시오.

package q02.quiz02;

import java.util.Scanner;

// Console에서 전체 학생수와 각 학생별 점수를 입력받아 전체 학생 중 최고점수를 출력하세요.

public class Quiz08 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		System.out.println("전체 학생 수를 입력하세요.");
		int student = input.nextInt();
		int [] array = new int [student];
		
		System.out.println(student + "명 학생의 점수를 입력하세요.");
		int score = input.nextInt();
		
		int [] data = new int[student];
		
		for (int i=1; i<student; i++) 
			data[i] = input.nextInt();
			
			int max = data[0];
			
			for (int i=0; i<student; i++) {
				if (data[i] > max) {
					max = data[i];
				}
		}
			System.out.println("전체 학생수의 가장 높은 점수는 : " + max);

	}

}

 

  1. 먼저 전체 학생 수와 각 학생 별 점수를 Console에 입력받기 위해 Scanner를 사용해준다.
  2. println()을 이용하여 "전체 학생 수를 입력하세요."라는 문구를 출력하게 해준다.
  3. 그 다음 int [] array인 배열을 이용하여 학생들의 점수를 한 배열로 묶어준다.
  4. for 문을 이용하여 전체 학생수만큼 반복해주는 반복문을 만들어준다.
  5. 그 다음 for 문 안에 if 문을 사용하여 data[i]가 max 변수보다 클 경우 data[i]가 max의 값이 되도록 해준다.
  6. 마지막으로 println()을 사용하여 전체 학생수의 가장 높은 점수를 출력한다.

위 사진은 위 코딩의 결과를 Console 창에 나타낸 것이다.



9. 별 반쪽 피라미드 4개의 패턴으로 출력하기

package q02.quiz02;

// 아래 그림처럼 4개의 pattern을 출력하시오.

//   *				  ******			 *			****** 	         
//   **               *****			    **           *****  
//   ***              ****		       ***            ****
//   ****             ***             ****             ***
//   *****            **             *****              **
//   ******           *             ******               *

public class Quiz09 {

	public static void main(String[] args) {
		
		System.out.println("Pattern A");
		
		for (int i=0; i<6; i++) {
			System.out.println("");
			for(int j=0; j<=i; j++)
				System.out.print("*");
		}
		System.out.println();
		
		System.out.println("Pattern B");
		
		for (int i=0; i<6; i++) {
			System.out.println("");
			for (int j=6; j>i; j--)
				System.out.print("*");
		}
		System.out.println();
		
		System.out.println("Pattern C");
		
		for (int i=0; i<6; i++) {
			System.out.println("");
			for (int j=5; j>=0; j--) {
				if(i<j) {
					System.out.print(" ");
				} else {
					System.out.print("*");
				}
			}
		}
		System.out.println();
		
		System.out.println("Pattern D");
		
		for (int i=0; i<6; i++) {
			System.out.println("");
			for (int j=0; j<6; j++) {
				if(i>j) {
					System.out.print(" ");
				} else {
					System.out.print("*");
				}
			}
		}
	}

}

 

  1. 첫번째 별 피라미드는 중첩 for 문을 이용하여 i가 0부터 6까지 반복되게 해주고, j가 0부터 i까지 *이 하나씩 늘어날 수 있도록 반복문을 만들어준다.
  2. 두번째 패턴은 첫번째 패턴에서 j에 *을 늘려주는게 아니라 줄어들게 만들어서 역 피라미드를 만들어준다.
  3. 세번째 패턴은 중첩 for 문과 if 문을 사용하여 첫번째 패턴의 반대 모습을 출력하게 만들어준다.(단, j의 *이 하나씩 줄어드는 반복문인데 if 문을 써서 i가 j보다 작을 경우 공백을 만들고, 아닐경우 *을 출력하게 해준다.)
  4. 네번째 패턴은 세번째 패턴을 반대로 해주면 출력된다.

위 사진은 위 코딩의 결과를 Console 창에 나타낸 것이다.



10. 1부터 100까지 3의 배수의 합을 구하시오.

package q02.quiz02;

// 1부터 100까지 3의 배수의 합을 구하라.

public class Quiz10 {

	public static void main(String[] args) {
		int sum = 0;
		
		for (int i=0; i<=100; i++) {
			if(i%3 == 0) {
				sum += i;
			}
		}
		
		System.out.println("1 ~ 100까지의 3의 배수의 합은 : " + sum);
	}

}

 

  1. 이번 문제는 1부터 100까지의 숫자 중 3의 배수의 합을 구하는 문제이다.
  2. for 문을 이용하여 0부터 100까지 반복문을 만들어준다.
  3. 그 다음 if 문을 이용하여 i를 %(나머지를 구하는 산술연산자)를 이용하여 3으로 나눈 값의 나머지가 0이면 3의 배수이므로 i%3 == 0을 해준다.

위 사진은 위 코딩의 결과를 Console 창에 나타낸 것이다.



이번 시간에는 저번 시간에 다 하지 못했던 Quiz02에 뒤에 문제들을 풀어보았습니다. 아직 부족한 코딩 실력이여서 더욱 더 열심히 복습하고 공부해야겠다고 생각을 하게 만드는 문제들이였습니다. 다음 시간에는 참조 타입에 대해서 공부해보겠습니다.^^

반응형