이 문제는 여러가지 풀이가 가능하지만 입력 조건이 매우 간단하기 때문에 밑에 소스코드처럼 작성하면 쉽게 풀 수 있다.
#include <stdio.h>
int main(void)
{
int a,b;
scanf("%d %d",&a,&b);
int x,y,z;
z=a%10; //일의 자리수
y=(a/10)%10; //십의 자리수
x=(a/100)%10; //백의 자리수
int result1= z*100+y*10+x;
z=a%10; //일의 자리수
y=(a/10)%10; //십의 자리수
x=(a/100)%10; //백의 자리수
int result2= z*100+y*10+x;
if(result1>result2)
printf("%d",result1);
else
printf("%d",result2);
return 0;
}
다만, 좀 더 일반적인 풀이를 위해서는 아래 소스코드 처럼 새로운 함수를 만들어 푸는 것이 효과적일 수 있다.
또한 while문을 이용해 더 쉽게 back함수를 만들 수도 있다.
#include <stdio.h>
/*만약 조금 더 긴 수를 여러가지 비교해야했다면 main함수에서 입력을 int가 아닌 int 형 배열을 받았을 것이다.
배열로 받고 몇자리수 인지 알아낸 다음 back함수에서
새로운 배열과 while문을 같이 사용하여 꺼꾸로된 수를 받는 것이 좀 더 일반적인 풀이이다*/
int back(int n) //입력받은 자연수 n을 거꾸로 반환하는 함수
{
int a,b,c;
c=n%10; //일의 자리수
b=(n/10)%10; //십의 자리수
a=(n/100)%10; //백의 자리수
return c*100+b*10+a;
}
int main(void)
{
int a,b;
scanf("%d %d",&a,&b);
a=back(a);
b=back(b);
int result=a>b?a:b;
printf("%d",result);
return 0;
}