티스토리 뷰

※[JAVA] 세 개의 숫자 정렬 


○ 실습 문제

사용자로부터 임의의 정수 세 개를 입력받아 작은 수에서 큰 수 순으로 출력하는 프로그램을 구현한다.

단, 입력 데이터를 한번에 처리할 수 있도록 구성하며 『xor』 연산자를 활용하여 스왑 처리를 할 수 있도록 한다.


import java.util.Scanner;
public class Test037
{
	public static void main(String[] args)
	{
		Scanner s = new Scanner(System.in);

		int a, b, c;	//-- 사용자가 입력하는 임의의 정수를 담을 변수
		
		System.out.print("임의의 세 정수 입력(공백 구분) : ");
		a = s.nextInt();
		b = s.nextInt();
		c = s.nextInt();

		// 1. 첫 번째 정수가 두 번째 정수보다 크다면...
		// 두 정수의 자리를 바꾼다.
		if(a>b)
		{
			a = a^b;
			b = b^a;
			a = a^b;
		}
		// 2. 두 번째 정수가 세 번째 정수보다 크다면...
		// 두 정수의 자리를 바꾼다.
		if(b>c)
		{
			b = b^c;
			c = c^b;
			b = b^c;
		}
		// 3. 첫 번째 정수가 두 번째 정수보다 크다면...
		// 두 정수의 자리를 바꾼다.
		if(a>b)
		{
			a = a^b;
			b = b^a;
			a = a^b;
		}
		System.out.printf("\n>> 정렬 결과 : %d %d %d\n",a,b,c);
	}
}

※실행결과

/*

임의의 세 정수 입력(공백 구분) : 13 25 11


>> 정렬 결과 : 11 13 25

계속하려면 아무 키나 누르십시오 . . .

*/


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함