새소식

Program Language/☕ JAVA

[자바] 벡터 연습, 명품 자바 에센셜 실습문제 7장 4번

728x90

<벡터 연습> 

문제: 한 어린이의 키를 2000년부터 209년 사이에 1년 단위로 입력받아 벡터에 저장하라. 그리고 가장 키가 많이 자란 연도를 출력하라.































package homework;
import java.util.Scanner;
import java.util.Vector;
public class vector {
public static void main(String[] args) {
int year = 0; //년도
double tHD = 0; //the height difference, 키 차이
Scanner scanner = new Scanner(System.in);
try {
Vector<Integer> vector = new Vector<Integer>(); //벡터 선언. 선언된 벡터에는 integer값을 넣을 것입니다.
System.out.println("2000~2009년까지 1년 단위로 키(cm)를 입력");
System.out.print(">>");
//for문을 돌면서 벡터에 scanner로 입력받은 값을 넣을 것 입니다.
for(int i = 0; i < 10; i++){
vector.add(scanner.nextInt());
}
//벡터에 담겨있는 값을 비교합니다. 문제의 특성상, 벡터에는 scanner로 입력한 사람의 키(height)가 들어갑니다.
//i+1과 i번째 벡터의 차가 바로 키 차이입니다.
//벡터의 크기는 10입니다. for문을 10번 돌았기 때문입니다. 따라서 vector.get(10)이라는 값은 없기에 if문에 j!=9를 작성하였습니다.
for(int j = 0; j < 10; j++){
if(j!= 9 && (vector.get(j+1) - vector.get(j)) > tHD){
tHD = (vector.get(j+1) - vector.get(j));
year = j;
}
}
year +=2000;
System.out.println("가장 키가 많이 자란 년도는 "+year+"년 "+tHD+"cm");
} catch (Exception e) {
System.out.println("에러가 발생하였습니다.");
} finally{
scanner.close();
}
}
}

감사합니다.


반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.