Test/JAVA Test

[JAVA 기초 문제] ArrayList사용 문제: 숫자 구하

오류나면꽥꽥 2023. 5. 26. 04:40

정수를 입력 10개가 될때까지 계속
입력한 정수들을 모두 출력
[ 1, 3, -1, 0, 10, ...]
이중에서 0이하인 정수들을 모두 제거하고 출력
[1, 3, 10,...]
이중에서 가장 큰 정수가 저장된 인덱스 넘버 출력
[2]번
가장 큰 정수를 제외하고 남은 정수들의 합과 평균 출력
4 2.0

 

package class01;

import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;

public class Test04 {
	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		
		ArrayList<Integer> data=new ArrayList<Integer>();
		int cnt=0;
		while(cnt<10) { // 정상 입력 10번 입력시 종료
			try {
				System.out.print("정수 입력) ");
				int num=sc.nextInt();
				System.out.println("num= "+num);
				
				data.add(num); // 정상입력값 저장
				cnt++; // 정상 입력 개수
			}
			catch(InputMismatchException e) { // 정수말고 다른것 입력시 예외
				sc.nextLine();
				System.out.println("정수만 입력하세요!");
			}
		}
		
		System.out.println(data);
		
		// 음수 데이터 지우기
		int index=0;
		while(index<data.size()) {
			if(data.get(index)<=0) {
				data.remove(index);
				continue;
			}
			index++;
		}
		System.out.println(data);
		
		// 최대값 인덱스 찾기
		int max=data.get(0);
		int maxIndex=0;
		
		for(int i=1;i<data.size();i++) {
			if(max<data.get(i)) {
				max=data.get(i);
				maxIndex=i;
			}
		}
		System.out.println("최대값인 번호는 ["+(maxIndex+1)+"]번");
		data.remove(maxIndex);
		
		// 평균 총합
		int sum=0;

		for(int v:data) { // 총합 구하기
			sum+=v;
		}
		
		double avg=sum*1.0/data.size(); // 평균 구하기
		System.out.println("합:"+sum+" 평균:"+avg);
		
		
	}
}