C++ 프로그램을 설계하는데 너무 복잡하지 말고 버블링 정렬 방법을 사용하는 것이 좋습니다.

Vc6.0 은 항상

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

구조 노드

{

Int num

차 이름 [20];

Int a;;

Int b;;

Int c;;

}

노드 stu[ 10]={

{2004 10 1, "장", 89,67,90},

{2004 102,' 양효민', 65,80,56}

{2004 103, "리빙빙", 76,66,71},

{2004 104,' 주흥화', 60,76,88}

{2004 105,' 왕효경', 82,90,78}

{2004 106, "첸", 70, 8 1, 93},

{2004 107,' 유회산', 85,60,76}

{2004 108, "장진", 80,76,61},

{2004 109,' 임화강', 70,66,98}

{2004 1 10,' 곽운봉', 62,60,87}

}

Int n= 10, suma, sumb, sumc

Void sort_a ()

{

Int I, j;

노드 온도

For(I = 0;; 나<n-1; I++)

{

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

{

If(stu[j].a & lt 스투 [j+ 1]. 대답

{

Temp = stu [j];

Stu [j] = stu [j+1];

Stu [j+1] = temp;

}

}

}

}

Void sort_b ()

{

Int I, j;

노드 온도

For(I = 0;; 나<n-1; I++)

{

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

{

If(stu[j].b & lt 스투 [j+ 1]. B)

{

Temp = stu [j];

Stu [j] = stu [j+1];

Stu [j+1] = temp;

}

}

}

}

Void sort_c ()

{

Int I, j;

노드 온도

For(I = 0;; 나<n-1; I++)

{

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

{

If(stu[j].c & lt 스투 [j+ 1]. C)

{

Temp = stu [j];

Stu [j] = stu [j+1];

Stu [j+1] = temp;

}

}

}

}

Void 정렬 ()

{

Int 모드

Printf ("정렬할 테마를 선택하십시오: 1. 중국어 2. 수학 3. 영어 \ n ");

Scanf("%d ",& 모드);

If (모드 = =1)

Sort _ a ();

Elseif (모드 = = 2)

Sort _ b ();

Elseif (모드 = = 3)

Sort _ c ();

기타

Printf ("입력 오류! \ n ");

}

잘못된 출력 ()

{

Int I;;

Printf ("학번 \t 이름 \t 언어 \t 수학 \t 영어 \t 평균 \ n");

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

{

Printf("%d\t ",stu[i]. Num);

Printf("%s\t ",stu[i]. 이름);

Printf("%d\t ",stu[i]. A);

Printf("%d\t ",stu[i]. B);

Printf("%d\t ",stu[i]. C);

Printf ("\ n");

}

}

Void fmax ()

{

Int I, maxa, maxb, maxc

Maxa=stu[0] 입니다. A; Suma=stu[0] 입니다. A;

Maxb=stu[0] 입니다. B; Sumb=stu[0] 입니다. B;

Maxc=stu[0] 입니다. C; Sumc=stu[0] 입니다. C;

For (I =1; 나< 10; I++)

{

만약 (스튜 [나]. A & gtmaxa) maxa=stu[i] 입니다. A;

만약 (스튜 [나]. A & gtmaxb) maxb=stu[i] 입니다. B;

만약 (스튜 [나]. A & gtmaxc) maxc=stu[i] 입니다. C;

Suma+=stu[i]. A;

Sumb+=stu[i]. B;

Sumc+=stu[i]. C;

}

Printf ("각 과목은 최고 %d\t%d\t%d\n", maxa, maxb, maxc);

}

Void fmin ()

{

Int I;;

Int Mina, minb, minc.

미나 = 스튜 [0]. A;

Minb=stu[0] 입니다. B;

Minc=stu[0] 입니다. C;

For (I =1; 나< 10; I++)

{

만약 (스튜 [나]. A & ltmina) mina=stu[i] 입니다. A;

만약 (스튜 [나]. A & ltminb) minb=stu[i] 입니다. B;

만약 (스튜 [나]. A & ltminc) minc=stu[i] 입니다. C;

}

Printf ("각 과목은 최소 %d\t%d\t%d\n", 미나, 미니, 미니);

}

유효하지 않은 즐겨찾기 ()

{

Float fa, FB, fc :

Fa = suma *1.0/n;

Fb = sumb *1.0/n;

Fc = sumc *1.0/n;

Printf ("섹션 평균: %.2f\t%.2f\t%.2f\n", fa, FB, fc);

}

Void main ()

{

Int chos

While( 1)

{

Printf ("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * printf

Printf(" 1. 정렬 알고리즘을 사용하여 위 과목 중 하나의 성적을 정렬합니다. \ n ");

Printf("2. 각 학생 기록으로 정렬된 성적을 표시하고 출력합니다. \ n ");

Printf("3. 각 과목의 최고 점수, 최저 점수, 평균 점수를 찾는 정보 \ n”);;

Printf("0. 프로그램을 종료합니다. \ n ");

Printf ("선택 \ n");

Printf ("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * printf

Scanf("%d ",& ampchos);

스위치 (chos)

{

사례 1:

Sort ();

깨뜨리다

사례 2:

Output ();

깨뜨리다

사례 3:

Fmax ();

Fmin ();

Fave ();

깨뜨리다

시나리오 0:

종료 (0);

}

}

}