중화사전망 - 자전 검색 - 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
* * */