|
우선 코스를 보시져..
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void swap(int *a, int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void main()
{
int i,j;
char word[5][10];
int num_length[5];
for(i=0; i<5; i++)
{
printf("Enter your Words : >> ");
scanf("%s",word[i]);
}
for(i=0; i<5; i++)
num_length[i]=strlen(word[i]);
printf("<< Input Words >>\n");
for(i=0; i<5; i++)
printf("%s:\tlength = %d\n",word[i],num_length[i]);
for(i=0; i<5-1; i++)
{
for(j=i+1; j<5; j++)
{
if(strcmp(word[i], word[j])>0)
swap(word[i],word[j]);
}
}
printf("\n<< Sorted Words >>\n");
for(i=0; i<5; i++)
printf("%s:\tlength = %d\n",word[i],num_length[i]);
}
문자열을 swap해야 하는데..
이 프로그램을 실행 시키면.. 두가지 문제점이 생깁니다..
첫번째는 swap(word[i],word[j])부분에 char형을 함수로는 int형으로 받아서 문제가 생기고..
두번째는 실행을 하면 문자열을 swap으로 넘길대 포일터를 사용하니.. 전체의 문자열이 바뀌지 않고
입력한 만큼만 바뀝니다. 예를 들어서..
첫번째 kiwi 두번째 apple라고 하면..
결과는 첫번재 appl 두번째 kiwie 라고 나옵니다.
아무리 생각해도 어케 해야하는지 모르겠습니다..
워낙 초보에다가 프로그램을 별루 안짜봐서..
그럼 답변 부탁드립니다.
|