역순 출력 문제 도와주세요 ㅠ
매1혹
질문 제목 : 만약 cabd 라면 dcba 이런식으로 알파벳의 역순으로 나열되도록 하는 프로그램을 짜야됩니다질문 내용 :
#include stdio.h
#include string.h
#define swap(x, y, t) ((t)=(x), (x)=(y), (y)=(t))
main()
{
char str[100];
int i,j,len,temp;
printf(input string -);
gets(str);
len = strlen(str);
for(i=0; ilen; i++)
{
for(j=i+1; jlen-1; j++)
{
if(str[i]str[j])
{
swap(str[i], str[j], temp);
}
else
{
swap(str[j], str[i], temp);
}
}
}
printf(========== %s \n, str);
}
이렇게 소스를 작성해봤는데요
실행은 되는데 결과값이 제대로 나오질 않습니다.. ㅠ
어떻게 해야되는지 모르겠어요 ㅠ 도와주세요
-
귀염포텐
이렇게 짜면 알파벳의 역순으로 출력은 안되는거에요?
zkclsn 이렇게 입력됬을땐 zsnlkc 이런식으로 알파벳의 역순서로 나와야되는데.. ㅠ -
터전
현재 작성한 것이 역순출력이라기보단 문자열에 잇는 char값을 비교해서 위치값을 바꾸게되는데
그과정에서 입력 문자열을 역순으로 만드는게 아니라 크기순 정렬을 하네요 -
서향
그냥 비교해서 큰걸 젤 앞쪽으로 보내고
다음 루프일 땐 그 제일 큰값을 제외하고 다시 루프 이런 식으로 하면 됩니다.
위 코드는 크도 바꾸고 작아도 바뀌니 루프 돌때마다 계속 바뀌고 있는 중입니다.