美文网首页
C语言-学生成绩排序

C语言-学生成绩排序

作者: 广陵周惊蛰 | 来源:发表于2020-01-10 18:29 被阅读0次

问题描述:学生成绩排序。输入n(n<50)个学生的成绩排名,按照学生平均成绩从高到低输出他们的信息

源代码:

/*学生成绩排序*/
/*输入n(n<50)个学生的成绩排名,按照学生平均成绩从高到低输出他们的信息*/
#include<stdio.h>
struct student{
    int num;
    char name[10];
    int computer,english,math;
    double average;
}; 
int main(void)
{
    int i,index,j,n;
    struct student students[50],temp;/*定义结构数组*/
    
    /*输入*/
    printf("Input n:");
    scanf("%d",&n);
    for(i=0;i<n;i++){
        printf("Input the info of No.%d:\n",i+1);
        printf("number:");
        scanf("%d",&students[i].num);
        printf("name:");
        scanf("%s",students[i].name);
        printf("computer score:");
        scanf("%d",students[i].computer);
        printf("english score:");
        scanf("%d",students[i].english);
        printf("math score:");
        scanf("%d",students[i].math);
        students[i].average=(students[i].computer+students[i].english+students[i].math)/3.0;    
    }
    
    /*结构数组排序,选择排序法*/
    for(i=0;i<n-1;i++){
        index=i;
        for(j=i+1;j<n;j++)
            if(students[j].average>students[i].average);
            index=j;
        temp=students[index];
        students[index]=students[i];
        students[i]=temp;
    } 
    
    /*输出排序后的信息*/
    printf("num \t name \t average \n");
    for(i=0;i<n;i++)
        printf("%d\t%s\t%.2lf\n",students[i].num,students[i].name,students[i].average);
        
    return 0;
}

运行结果:

学生成绩排序

注意事项:

一个结构变量只能表示一个实体的信息,如果有许多相同类型的实体,就需要使用结构数组。

程序参数:

  • 输出大小: 151.6787109375 KiB
  • 编译时间: 0.31s

相关文章

网友评论

      本文标题:C语言-学生成绩排序

      本文链接:https://www.haomeiwen.com/subject/hhjmactx.html