프로그래머의 삶 Programmer's Life/C & C++

세가지 문자나 숫자를 입력한후 큰수부터 정렬후 그 수를 3진수로 나타내는 프로그램

Oliver's World 2008. 11. 5. 11:23
728x90
// 세가지 문자나 숫자를 입력한후 큰수부터 정렬...그후 3진수 코드로 나타내기

#include<stdio.h>

int three(a) // 3진수 코드로 변환하는 함수
{
char k=0,m,l[10];
for(k=0; ;k++)
{
if(a%3 == 0)
{
l[k]=0;
}
else
{
l[k]=a%3;
}
a/=3;
if(a==0)
{
break;
}
}
for(m=k;m>=0;m--) // 0번지부터 가장 초기값을 입력하였으므로 번지를 거꾸로 돌린다.
{
printf("%d",l[m]);
}
return 0;
}


main() //매인함수 부분은 그다지 보기 좋지 않지만 어쩔수 없다.
{
char a,b,c,k;
printf("세개의 문자 또는 숫자를 입력하시오.\n(x,y,z형식으로 입력하되 한글자나 숫자씩 입력)\n");
scanf("%c,%c,%c",&a,&b,&c); //아무 문자나 숫자를 3개 입력받는다.
if(b>a) //여기서부터 비교하면서 큰수부터 작은수 순으로 정렬한다.
{
k=a;
a=b;
b=k;
}
if(c>a)
{
k=c;
c=a;
a=k;
}
if(c>b)
{
k=c;
c=b;
b=k;
}
printf("\n %c > %c > %c\n",a,b,c);
printf(" 위의 값을 아스키코드값으로 출력하면\n %d > %d > %d\n",a,b,c);
printf("위의 정렬된 값을 3진수로 변화한 후의 값은\n ");
three(a); //가장 큰 값을 3진수코드로 변환하기 위해 값을 넘김
printf(" > ");
three(b);
printf(" > ");
three(c);
printf("\n");
}

728x90