1

以下のコードを書きましたが、出力からわかるように何かが間違っています。ポインタを間違えたのかもしれません。手伝ってくれますか?

未分類の名前:

ニューヨーク ジョージア ボストン

並べ替えられた名前:

ボストーク ジョージア ニューヨン

#include <stdio.h>
#include <stdlib.h>   
#include <string.h>
#define SIZE 3

void sort(char x[3][100]);
void swap(char **, char **);

int i,j;
char names[SIZE][100];
char *temp;

int main(void){

//get the names of the cities
puts("Enter names of cities");
for (i = 0; i < SIZE; i++)
{       
    fgets( names[i], 99, stdin );
}
//print entered names
puts("\nUnsorted Names:\n");
for (i = 0; i < SIZE; i++)
{
    printf("%s", names[i]);
}

sort(names);

//print sorted names
puts("\nSorted Names:\n");
for (i = 0; i < SIZE; i++)
{
    printf("%s", names[i]);
}

getch();
 }

//sorting function
void sort(char angut[3][100]){

for (i = 0; i < SIZE-1; i++)
{
    for (j = i+1; j < SIZE; j++)
    {
        if (strcmp( angut[i], angut[j] ) >0)
        {
            swap(&angut[i],&angut[j]);
        }

    }

}

}

  //swapping function
  void swap(char **first, char **second){

temp=*second;
*second=*first;
*first=temp;

}
4

2 に答える 2