将10人的C语言成绩存储并输出,求10人的平均成绩,并查分,按成绩由高到低排列(用C语言编程)

如题所述

#include <stdio.h>
#define STUDENT_NUM 10
typedef struct
{
    int no;          /* å­¦å· */
    char name[16];   /* åå­— */
    float fraction;  /* æˆç»© */
}StudentInfo;
void outputFraction(int student_num, StudentInfo * student_list)
{
    int i;
    if (student_list == NULL) return;
    for (i = 0; i < student_num; i++)
    {
        printf("学生:%s C语言成绩:%f\n", student_list[i].name, student_list[i].fraction);
    }
}
void bubbleSort(int student_num, StudentInfo * student_list)
{
    int i, j;
    StudentInfo temp;
    if (student_list == NULL) return;
    for (j = 0; j < student_num - 1; j++)
    {
        for (i = 0; i < student_num - 1 - j; i++)
        {
            if (student_list[i].fraction < student_list[i + 1].fraction)
            {
                temp = student_list[i];
                student_list[i] = student_list[i + 1];
                student_list[i + 1] = temp;
            }
        }
    }
}
float varFraction(int student_num, StudentInfo * student_list)
{
    int i;
    float all;
    all = 0.0f;
    if (student_list == NULL) return all;
    for (i = 0; i < student_num; i++)
    {
        all += student_list[i].fraction;
    }
    return all / student_num;
}
StudentInfo searchFraction(int student_num, StudentInfo * student_list, int no)
{
    int i;
    StudentInfo s;
    if (student_list == NULL) return s;
    for (i = 0; i < student_num; i++)
    {
        if (no == student_list[i].no)
        {
            s = student_list[i];
            break;
        }
    }
    return s;
}
int main(int argc, char *argv[])
{
    int student_num;
    StudentInfo student_list[STUDENT_NUM];
    StudentInfo student;
    int i;
    float var_f;
    int no;
    student_num = STUDENT_NUM;
    /* è¾“入信息 */
    printf("输入学生信息(格式: å§“名 åˆ†æ•°)\n");
    for (i = 0; i < student_num; i++)
    {
        scanf("%d %s %f", &(student.no), student.name, &(student.fraction));
        student_list[i] = student;
    }
    printf("输出学生成绩(排序前)\n");
    outputFraction(student_num, student_list);
    /* æŽ’序 */
    bubbleSort(student_num, student_list);
    printf("输出学生成绩(排序后)\n");
    outputFraction(student_num, student_list);
    /* æ±‚平均值 */
    var_f = varFraction(student_num, student_list);
    printf("平局成绩: %f\n", var_f);
    /* æŸ¥æŸäººæˆç»©(no是学号) */
    printf("输入查询学生学号:\n");
    scanf("%d", &no);
    student = searchFraction(student_num, student_list, no);
    printf("学生:%s C语言成绩:%f\n", student.name, student.fraction);
    return 0;
}

没有检查,测试...自己查吧

温馨提示:答案为网友推荐,仅供参考