更新时间2018-04-13 18:11:24
#include<stdio.h>
#include<string.h>
#define N 150
#define MAX_LEN 10
void SortString(char *ptr[],int n);
int main()
{
int i,n;
char name[N][MAX_LEN];
char *pstr[N];
printf("how many countries?");
scanf("%d",&n);
getchar();
printf("Input their names: ");
for(i=0;i<n;i++)
{
pstr[i]=name[i];
//scanf("%s",ptr[i]);
gets(pstr[i]);
}
SortString(pstr,n);
printf("Sorted resulted: ");
for(i=0;i<n;i++)
{
puts(pstr[i]);
}
return 0;
}
void SortString(char *ptr[],int n)
{
int i,j;
char *temp=NULL;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(strcmp(ptr[j],ptr[i])<0)
temp=ptr[i];
ptr[i]=ptr[j];
ptr[j]=temp;
}
}
}
你的排序中的判断有问题,正确的
if(strcmp(ptr[j],ptr[i])<0)
{ ///少了一对{}了
temp=ptr[i];
ptr[i]=ptr[j];
ptr[j]=temp;
} //到这里