这个程序错哪了
请高手看看这个程序哪里错了
#include <stdio.h>
#include <string.h>
void sort(char *name[]);
void main()
{
char *name[5]={ "Hongkong ", "Singapore ", "China ", "London ", "Korea "};
int i;
printf( "预定义5个国家名称:\n ");
for(i=0;i <5;i++)
{
printf( "%s\n ",name[i]);
}
sort(name);
}
void sort(char *name[5])
{
int i,j;
char dummy[20];
for(i=0;i <5;i++)
{
for(j=0;j <=5-i-1;j++)
{
if(strcmp(*(name-j),*(name+1-j))> 0)
{
strcpy(dummy,*(name-j));
strcpy(*(name-j),*(name+1-j));
strcpy(*(name+1-j),dummy);
}
}
}
printf( "按字母排序如下: ");
for(i=0;i <5;i++)
{
printf( "%s\n ",name[i]);
}
}
------解决方案--------------------
#include <stdio.h>
#include <string.h>
void sort(char *name[]);
main()
{
char *name[5]={ "Hongkong ", "Singapore ", "China ", "London ", "Korea "};
int i;
printf( "预定义5个国家名称:\n ");
for(i=0;i <5;i++)
{
printf( "%s\n ",name[i]);
}
sort(name);
}
void sort(char *name[])
{
char *temp;
int i,j,k;
for (i=0;i <4;i++)
{
k=i;
for (j=i+1;j <5;j++)
{if(strcmp(name[k],name[j])> 0) k=j;}
if(k!=i)
{ temp=name[i]; name[i]=name[k] ; name[k]=temp; }
}
printf( "排序后:\n ");
for(i=0;i <5;i++)
{
printf( "%s\n ",name[i]);
}
}
#include <stdio.h>
#include <string.h>
void sort(char *name[]);
void main()
{
char *name[5]={ "Hongkong ", "Singapore ", "China ", "London ", "Korea "};
int i;
printf( "预定义5个国家名称:\n ");
for(i=0;i <5;i++)
{
printf( "%s\n ",name[i]);
}
sort(name);
}
void sort(char *name[5])
{
int i,j;
char dummy[20];
for(i=0;i <5;i++)
{
for(j=0;j <=5-i-1;j++)
{
if(strcmp(*(name-j),*(name+1-j))> 0)
{
strcpy(dummy,*(name-j));
strcpy(*(name-j),*(name+1-j));
strcpy(*(name+1-j),dummy);
}
}
}
printf( "按字母排序如下: ");
for(i=0;i <5;i++)
{
printf( "%s\n ",name[i]);
}
}
------解决方案--------------------
#include <stdio.h>
#include <string.h>
void sort(char *name[]);
main()
{
char *name[5]={ "Hongkong ", "Singapore ", "China ", "London ", "Korea "};
int i;
printf( "预定义5个国家名称:\n ");
for(i=0;i <5;i++)
{
printf( "%s\n ",name[i]);
}
sort(name);
}
void sort(char *name[])
{
char *temp;
int i,j,k;
for (i=0;i <4;i++)
{
k=i;
for (j=i+1;j <5;j++)
{if(strcmp(name[k],name[j])> 0) k=j;}
if(k!=i)
{ temp=name[i]; name[i]=name[k] ; name[k]=temp; }
}
printf( "排序后:\n ");
for(i=0;i <5;i++)
{
printf( "%s\n ",name[i]);
}
}