카테고리 없음
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);
}
}
- 이번 문제는 우리가 정수를 입력하고 그 정수에 대하여 양수의 갯수와, 음수의 갯수, 전체 합, 전체 평균을 구하는 문제이다.
- 우리가 정수를 직접 입력하기 위해 Scanner를 사용해준다.
- 그 다음 do ~ while 문을 사용하여 정수를 입력하되, 0을 입력하면 프로그램이 종료된다는 문구를 입력해준다.
- do ~ while 문안에 중첩 if 문을 사용하여 우리가 입력한 값이 양수와 음수일 경우의 갯수를 세준다.
- 중첩 if 문 밖에는 averge 변수에 전체 평균을 구하는 식을 입력해준다.
- 마지막으로 while 문에 우리가 입력한 정수가 0이면 while 문을 빠져나오게 해준다.
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);
}
}
}
- 이번 문제는 Quiz01에서 했던 이자율 문제를 for 문을 사용하여 해보았다.
- 우리가 직접 입력하기 위해 Scanner를 사용해주고, println()을 이용하여 "매월 적금 금액을 입력하세요."라는 문구와 "이자율을 입력하세요."라는 문구가 출력되게 해준다.
- interest라는 변수에 이자율 식을 넣어주고, for 문을 이용하여 6개월이니 1부터 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);
}
}
- 먼저 전체 학생 수와 각 학생 별 점수를 Console에 입력받기 위해 Scanner를 사용해준다.
- println()을 이용하여 "전체 학생 수를 입력하세요."라는 문구를 출력하게 해준다.
- 그 다음 int [] array인 배열을 이용하여 학생들의 점수를 한 배열로 묶어준다.
- for 문을 이용하여 전체 학생수만큼 반복해주는 반복문을 만들어준다.
- 그 다음 for 문 안에 if 문을 사용하여 data[i]가 max 변수보다 클 경우 data[i]가 max의 값이 되도록 해준다.
- 마지막으로 println()을 사용하여 전체 학생수의 가장 높은 점수를 출력한다.
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("*");
}
}
}
}
}
- 첫번째 별 피라미드는 중첩 for 문을 이용하여 i가 0부터 6까지 반복되게 해주고, j가 0부터 i까지 *이 하나씩 늘어날 수 있도록 반복문을 만들어준다.
- 두번째 패턴은 첫번째 패턴에서 j에 *을 늘려주는게 아니라 줄어들게 만들어서 역 피라미드를 만들어준다.
- 세번째 패턴은 중첩 for 문과 if 문을 사용하여 첫번째 패턴의 반대 모습을 출력하게 만들어준다.(단, j의 *이 하나씩 줄어드는 반복문인데 if 문을 써서 i가 j보다 작을 경우 공백을 만들고, 아닐경우 *을 출력하게 해준다.)
- 네번째 패턴은 세번째 패턴을 반대로 해주면 출력된다.
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부터 100까지의 숫자 중 3의 배수의 합을 구하는 문제이다.
- for 문을 이용하여 0부터 100까지 반복문을 만들어준다.
- 그 다음 if 문을 이용하여 i를 %(나머지를 구하는 산술연산자)를 이용하여 3으로 나눈 값의 나머지가 0이면 3의 배수이므로 i%3 == 0을 해준다.
이번 시간에는 저번 시간에 다 하지 못했던 Quiz02에 뒤에 문제들을 풀어보았습니다. 아직 부족한 코딩 실력이여서 더욱 더 열심히 복습하고 공부해야겠다고 생각을 하게 만드는 문제들이였습니다. 다음 시간에는 참조 타입에 대해서 공부해보겠습니다.^^
반응형