중화사전망 - 자전 검색 - C 언어 프로그램은 한어병음의 이니셜에 따라 정렬되며, 프로그램에는 두 개의 함수가 필요하다.

C 언어 프로그램은 한어병음의 이니셜에 따라 정렬되며, 프로그램에는 두 개의 함수가 필요하다.

/* * 는 다음과 같이 수정되었습니다.

* @ 작성자: Banxi 1988

* @ 날짜: 20 10- 12-9

*/

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & ltstring.h & gt

#define M 5 /** 더 많은 학생을 입력하려면 학생 수를 직접 변경하십시오. */

Void input(char * name [], int n);

Void sort(char * name [], intn);

Int main(int argc, char * * agrv ){

Char * name [m]; /* * 학생 이름을 저장합니다. */

Int I = 0;;

입력 (이름, m);

Sort (이름, 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 (이름 [I], str);

}//for:

}//입력

Void sort(char * name [], int n ){

/* * 버블 정렬 * * * * * * * * * * *

Char * tmp

Int I, j;

For(I = 0;; 나 & ltn;; I++)

{

For (j =1; J<n-I; J++)

{

/* * * 두 개의 이름을 교환하고 더 큰 이름이 배열 앞에 옵니다. */

If (strcmp (이름 [j], 이름 [j-1]) < 0)

{

Tmp = name [j-1];

Name [j-1] = name [j];

Name [j] = tmp;

}

}//inner for

}//외부 for

}//정렬

/* * * * 테스트 결과:

학생 다섯 명의 이름을 입력하십시오 (병음을 사용하십시오).

Abc cano Java perl Banxi

이름은 병음으로 배열되어 다음과 같이 출력됩니다.

Abc Banxi cano Java perl

* * */