세 단어를 입력받아, 오름차순으로 정렬하기.
#include <stdio.h>
#include <string.h>
void swapString(char szTemp[], char (*chAWord)[], int nCount);
int main(void)
{
char chAWord[3][20];
int nCount = 0;
int i;
while(1)
{
printf("enter the voca : ");
gets(chAWord[nCount]);
nCount++;
if(nCount>2)break; //세단어만 입력받을 것이여.
}
char szTemp[20];
//오름차순 정렬.
for(i=0;i<3;i++)
{
for(nCount=0;nCount<i;nCount++)
{
if (strcmp(chAWord[nCount],chAWord[nCount+1]) == 1)
{
swapString(szTemp, chAWord,nCount);
}
}
}
for(i=0;i<3;i++)
printf("%s\n",chAWord[i]);
return 0;
}
void swapString(char szTemp[20], char (*chAWord)[20], int nCount)
{
strcpy(szTemp ,chAWord[nCount]);
strcpy(chAWord[nCount], chAWord[nCount+1]);
strcpy(chAWord[nCount+1], szTemp);
}
정렬부분 함수로 처리해보기.
#include <stdio.h>
#include <string.h>
void sortString(char (*chAWord)[20]);
void swapString(char szTemp[], char (*chAWord)[], int nCount);
int main(void)
{
char chAWord[3][20];
int nCount = 0;
int i;
while(1) //단어를 입력받아
{
printf("enter the voca : ");
gets(chAWord[nCount]);
nCount++;
if(nCount>2)break; //chAWord[2]까지 저장!
}
sortString(chAWord);
for(i=0;i<3;i++)
printf("%s\n",chAWord[i]);
return 0;
}
void sortString(char (*chAWord)[20])
{
char szTemp[20]; // 문자열을 임시로 저장해둘 문자배열
int i;
int nCount;
for(i=0;i<3;i++)
{
for(nCount=0;nCount<i;nCount++)
{
if (strcmp(chAWord[nCount],chAWord[nCount+1]) == 1)
{
swapString(szTemp, chAWord,nCount);
}
}
}
}
void swapString(char szTemp[20], char (*chAWord)[20], int nCount)
{
strcpy(szTemp ,chAWord[nCount]);
strcpy(chAWord[nCount], chAWord[nCount+1]);
strcpy(chAWord[nCount+1], szTemp);
}
댓글 없음:
댓글 쓰기