c言語——オリンピック参加国の出場順序

1650 ワード

 

改める前に
オリンピック参加国の出場順序:オリンピック参加国の国名を入力し、辞書順に並べ替える.要求:参加国数は150を超えず、国ごとの名前は9文字を超えない.ヒント:'0'は1文字です.要求:以下の手順の誤りを見つけて修正してください.
#include 
#include 
 
#define N 150
#define MAX_LEN 10
void SortString(char str[][MAX_LEN], int n);
 
int main()
{
    int i, n;
    char name[N][MAX_LEN]; 
 
    printf("How many countries?");
    scanf("%d",&n);     
    getchar();
    printf("Input their names
");       for(i=0;i

過ちを改める
#include 
#include 
 
#define N 150
#define MAX_LEN 10
void SortString(char str[][MAX_LEN], int n);
 
int main()
{
    int i, n;
    char name[N][MAX_LEN];
 
    printf("How many countries?");
    scanf("%d", &n);
 
    getchar();
    printf("Input their names
");       for (i = 0; i < n; i++)     {         gets(name[i]);     }       SortString(name, n);       printf("Sorted results:
");     for (i = 0; i < n; i++)       {         puts(name[i]);         }     return 0;   }   void SortString(char str[][MAX_LEN], int n) {     int i, j;     char temp[MAX_LEN];       for (i = 0; i < n; i++)     {         for (j = i + 1; j < n; j++)         {             if (strcmp(str[j], str[i]) > 0)             {                 strcpy(temp, str[i]);                 strcpy(str[i], str[j]);                 strcpy(str[j], temp);               }           }       } }