我写了下面的代码,但从输出中可以看出有问题。我可能犯了一个指针错误。你能帮我吗?
未排序的名称:
纽约乔治亚波士顿
排序名称:
博斯托克乔治亚纽永
#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;
}