学生データのセットを入力し、大から小までのグレードに従って出力します。学生の数は変更できます

#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