세 자리 양의 정수 한 개를 입력 받아 각 자리수 중에서 최대값을 찾아 출력하시오.

- 각 자리수는 서로 다르다고 가정한다.

- 즉 112 혹은 232 같은 수는 입력되지 않는다.

실행 예시 1
실행 예시 2


#pragma warning(disable:4996)

#include <stdio.h>

int main() { //main함수 선언
	int input; //입력받을 세 자리 양의 정수가 저장 될 변수 선언
	int num1, num2, num3; //100의 자리, 10의 자리, 1의 자리
	int max; //각 자리수 중에서 최대값 저장될 변수 선언

	scanf("%d", &input); // 세 자리 양의 정수 입력받음.

	num1 = input / 100; //100의 자리
	num2 = (input % 100) / 10; //10의 자리
	num3 = (input % 10) / 1; //1의 자리

	max = num1; //우선 100의자리 수(num1)를 최대값이라고 가정함. 그 후로 지금의 최대값보다 큰 값이 나타난다면 그 값을 최대값으로 교체해주면 됨. (여기의 max는 아직 진짜 최대값인지 모름.)
	max = max > num2 ? max : num2; //max(num1)가 10의자리 수(num2)보다 크면 max 그대로. 아니라면 max에 10의자리 수(num2) 대입. (여기의 max는 아직 진짜 최대값인지 모름.)
	max = max > num3 ? max : num3; //위의 결과값에 따라 max는 어느 값(num1 or num2)인지 정해졌으며, num3와 비교하여 큰 값이 max가 됨. (여기의 max는 진짜 최종 최대값임.)
	printf("%d\n", max); //최대값 max 출력.

	return 0; //0 반환
}
반응형