#include <stdio.h>
struct student / * define structure * /
{ int num; char name [20]; float score; }; int main(){ void rank(struct student p []、int n); void print(struct student p []、int n); int i; int n = 3; / *生徒数* / struct student stu [3]; / *生徒数を変更する場合は、ここで適宜変更してください* / for(i = 0; i <n; i ++) scanf( "%d%s%f"、&stu [i] .num、stu [i] .name、&stu [i] .score); printf( "学年の生徒のランクdispose is:\ n "); rank(stu、n); print(stu、n); return 0; } void rank(struct student p []、int n)/ *処理関数* / {
int i、j、k;
struct Student temp;
for(i = 0; i <n-1; i ++)
{ k = i; / *現在の学生のシリアル番号を保存* / for(j = i + 1; j < n; j ++) if(p [j] .score> p [k] .score)/ *保存された生徒のデータを次の生徒のデータと一度に比較* / k = j; / *最高のスコアを持つ生徒のシリアル番号* / temp = p [i]; p [i] = p [k]; p [k] = temp; / *最初との交換* / } } void print(struct student p []、int n)/ * output Function * / { int i; for(i = 0; i <n; i ++) printf( "%6d%8s、%6.2f \ n"、p [i] .num、p [i] .name、p [ i] .score); printf( "\ n"); }
学生データのセットを入力し、大から小までのグレードに従って出力します。学生の数は変更できます
おすすめ
転載: blog.csdn.net/progess_every_day/article/details/104877238
おすすめ
ランキング