본문 바로가기

JAVA/기초 프로그래밍

숫자를 입력받아 오름/내림 정렬하는 프로그램 (답안)

 

오름/내림 판단을 삼항연산식을 사용 -> 

boolean 을 사용하여 updown 값을 false로 넣고

true일경우 오름, 나머지 false로 코딩됨

 

출력은 msg로 오름/내림 따로 셋팅하여 수정이 용이하게 함.

	Scanner sc = new Scanner(System.in);
		
		int number[] = null;
		int count;
		boolean updown = false;
				
		// 정렬할 갯수?
		System.out.print("정렬할 갯수는 = ");
		count = sc.nextInt();
		// 1보다 커야 함	
		
		// 정렬할 숫자를 동적할당
		number = new int[count];
		
		// 정렬할 숫자를 입력 
		for (int i = 0; i < number.length; i++) {
			System.out.print((i + 1) + "번째 수 = ");
			number[i] = sc.nextInt();
		}
		
		// 오름(1)/내림(2)
		System.out.print("오름(1)/내림(2) = ");
		int ud = sc.nextInt();
		updown = (ud == 1)?true:false;
				
		
		
		// 정렬
		int temp;
		for (int i = 0; i < number.length - 1; i++) {			
			for (int j = i + 1; j < number.length; j++) {
				
				if(updown) {	// 오름
					if(number[i] > number[j]) {
						temp = number[i];
						number[i] = number[j];
						number[j] = temp;
					}					
				}else {			// 내림
					if(number[i] < number[j]) {
						temp = number[i];
						number[i] = number[j];
						number[j] = temp;
					}
				}				
			}			
		}		
		
		
		
		
		// 결과
		String msg = "";
		if(updown) 	msg = "오름";
		else		msg = "내림";
		System.out.println(msg + "차순으로 정렬하였으며,");
		for (int i = 0; i < number.length; i++) {
			System.out.println(i + ":" + number[i]);
		}