* @作者:banxi1988
*@date:2010-12-9
*/
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & ltstring.h & gt
#定義M 5 /**如果想輸入更多,自己更改學生人數。*/
void input(char *name[],int n);
void sort(char *name[],int n);
int main(int argc,char **agrv){
char * name[M];/* *保存學生姓名。*/
int I = 0;
輸入(姓名,M);
排序(名稱,M);
Printf("姓名按拼音輸出如下:\ n ");
for(I = 0;我& ltm;i++)
{
printf("%s\t ",name[I]);
}//for:
printf(" \ n ");
返回0;
}//
void input(char *name[],int n){
char string[20];/* *拼音長度。20-1,自己改*/
int I;
Printf("請輸入%d名學生的姓名(請用拼音):\n ",M);
/* *這也是重點,請大家理解。* */
for(I = 0;我& ltn;i++)
{
scanf("%s ",str);
name[I]=(char *)malloc(sizeof(char)*(strlen(str));
strcpy(name[i],str);
}//for:
}//輸入
void sort(char *name[],int n){
/* *冒泡法實現排序* * * * * * * * * * * *
char * tmp
int i,j;
for(I = 0;我& ltn;i++)
{
for(j = 1;j & ltn-I;j++)
{
/* * *兩個名稱交換,較大的名稱放在數組前面。*/
if(strcmp(name[j],name[j-1])& lt;0)
{
tmp = name[j-1];
name[j-1]= name[j];
name[j]= tmp;
}
}//內部用於
}//外部for
}//排序
/* * * *測試結果:
請輸入五名學生的姓名(請用拼音):
abc cano java perl banxi
姓名按拼音排列,輸出如下:
abc banxi cano java perl
***/