當前位置:編程學習大全網 - 編程軟體 - c語言程序按漢語拼音首字母排序,程序中需要兩個函數。

c語言程序按漢語拼音首字母排序,程序中需要兩個函數。

/* *已修改如下。

* @作者: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

***/

  • 上一篇:win10系統如何使用多任務視圖讓桌面發揮最大空間
  • 下一篇:高分,請求推薦筆記本!
  • copyright 2024編程學習大全網