본문 바로가기

연습문제/JAVA

JAVA 연습문제 6번 7번 (0804)

연습문제 6번

 

1. 학생수는 3명 국어 영어 2과목 점수를 입력받아서
2. 평균이 80이상이면 합격
3. 그렇지 않으면 불합격을 출력하고
4. 합격한 사람의 수를 출력하는 프로그램
옵션 ) 메소드로(함수) 분리해서 작성

/*
Scanner sc = new Scanner(System.in);
System.out.println("국어 성적을 입력하세요");
int usernum = sc.nextInt();
System.out.println("1번 입력받은 국어성적: " + usernum);
int usernum2 = sc.nextInt();
System.out.println("2번 입력받은 국어성적: " + usernum2);
int usernum3 = sc.nextInt();
System.out.println("3번 입력받은 국어성적: " + usernum3);

Scanner sc2 = new Scanner(System.in);
System.out.println("수학 성적을 입력하세요");
int user2num = sc2.nextInt();
System.out.println("1번 입력받은 영어성적: " + user2num);
int user2num2 = sc2.nextInt();
System.out.println("2번 입력받은 영어성적: " + user2num2);
int user2num3 = sc2.nextInt();
System.out.println("2번 입력받은 영어성적: " + user2num3);

int sum1 = (usernum + user2num) / 2;
int sum2 = (usernum2 + user2num2) / 2;
int sum3 = (usernum3 + user2num3) / 2;
System.out.println(sum1);
System.out.println(sum2);
System.out.println(sum3);
checkPoint(sum1, sum2, sum3);

private void checkPoint ( int sum1, int sum2, int sum3){
int i = 0;
if (sum1 >= 80) {
System.out.println("1번 학생 합격");
i++;
} else {
System.out.println("1번 학생 불합격");
}
if (sum2 >= 80) {
System.out.println("2번 학생 합격");
i++;
} else {
System.out.println("2번 학생 불합격");
}
if (sum3 >= 80) {
System.out.println("3번 학생 합격");
i++;
} else {
System.out.println("3번 학생 불합격");
}
System.out.println("합격한 사람의 수 :" + i);
}
*/

 

코드가 너무 길고 배열을 사용하지 않아서 다시 작성해습니다

 

float[] arr = new float[3];
for (int i = 0; i < 3; i++) {
System.out.println((i + 1) + "번째 국어 성적을 입력하세요");
Scanner sc = new Scanner(System.in);
float usernum = sc.nextInt();

System.out.println((i + 1) + "번째 학생의 영어 성적을 입력하세요");
Scanner sc1 = new Scanner(System.in);
float user2num = sc1.nextInt();
arr[i] = (usernum + user2num) / 2;

}
avgPoint(arr);

}
private void avgPoint(float[] arr) {
int A=0;
for(int i=0;i<3;i++) {
if (arr[i] >= 80) {
System.out.println("pass");
A++;
} else {
System.out.println("fail");
}
}
System.out.println("합격한 사람의 수: " + A);
}

 

 

실행결과

 

 

 

연습문제 7번

 

1. 삼각형의 밑변의 길이와 높이를 입력받아
2. 넓이를 출력하고
3. continue? 에서 하나의 문자를 입력받아 그 문자가 Y나 y 이면 작업을 반복하고
4. 아니면 종료
옵션 ) 넓이는 소수점 자리로 출력하라


Scanner sc = new Scanner(System.in);
Scanner strSc = new Scanner(System.in); //int형이 아닌 string을 받는 scanner를 하나 더 생성


//do while문을 사용하여
String inputContinue = "y";
do{
//삼각형의 밑변의 길이
System.out.println("밑변의 길이를 정수로 입력하시오:");
int baseLineLen = sc.nextInt();
//삼각형의 높이
System.out.println("높이를 정수로 입력하시오:");
int height = sc.nextInt();

System.out.println("밑변의 길이 : " + baseLineLen);
System.out.println("높이의 길이 : " + height);

//넓이를 출력
float area = (float) ( baseLineLen * height ) / 2; //int float으로 형변환 67p
System.out.println("넓이 : " + area);
System.out.println("Continue?");
inputContinue = strSc.nextLine();
// }while (inputContinue == "Y" || inputContinue == "y"); //==는 객체를 비교할때 주소값(객체)을 비교해서 fail
}while (inputContinue.equals("Y") || inputContinue.equals("y"));

 

실행결과