输入成绩,按照平均分从高到低输出

本文介绍了一个简单的学生成绩管理系统程序,该程序使用 C 语言实现。它能够接收输入的学生各科成绩,并计算平均分,最后按平均分高低对学生进行排序并显示所有学生的成绩及排名情况。

# include "stdio.h"
# define M 3
# define N 4
int main(void)
{
  float d[M][N],sum,x;
  int i,j,t;
  for(i=0;i
  {
    sum=0;
    printf("请输入第%d个学生的3门课的成绩:",i+1);
    for(j=0;j<3;j++)
    {
      scanf("%f",&d[i][j]);
      sum+=d[i][j];
    }
    d[i][3]=sum/3.0;
  }
  for(i=0;i
  {
    for(j=i+1;j
      if(d[i][3]
        for(t=0;t<4;t++)
        {
          x=d[i][t];
          d[i][t]=d[j][t];
          d[j][t]=x;
        }
  }
  printf("按照平均分从高到底的顺序为:\n");
  for(i=0;i
    printf("第%d个同学的成绩为%.3f %.3f %.3f,平均成绩为%.3f\n",i+1,d[i][0],d[i][1],d[i][2],d[i][3]);

}

在C语言中,对学生成绩进行排序并按平均成绩显示可以采用数组存储学生数据,并通过嵌套循环或更效的数据结构如链表或动态数组进行操作。以下是一个简单的示例,假设每个学生的信息包括姓名和两个分数(例如:语文和数学),我们先计算平均分,然后进行降序排列: ```c #include <stdio.h> #include <string.h> typedef struct { char name[50]; int score_chinese; int score_math; } Student; void calculate_average(Student* student) { float average = (student->score_chinese + student->score_math) / 2.0f; student->average_score = (int)(average * 100); // 四舍五入保留整数 } // 按平均成绩降序比较两个学生 int compare_students(const void* a, const void* b) { const Student* s1 = (const Student*)a; const Student* s2 = (const Student*)b; return s2->average_score - s1->average_score; // 分在前 } void sort_students_by_average(Student students[], int n) { qsort(students, n, sizeof(Student), compare_students); } int main() { int n; printf("请输入学生人数:"); scanf("%d", &n); Student students[n]; // 假设每个学生的信息已经初始化 for (int i = 0; i < n; i++) { calculate_average(&students[i]); } sort_students_by_average(students, n); for (int i = 0; i < n; i++) { printf("学生:%s, 平均成绩:%d 分\n", students[i].name, students[i].average_score); } return 0; } ``` 在这个程序中,首先定义了一个`Student`结构体用于存储学生数据,接着定义了计算平均分和比较学生平均分的函数。`qsort`函数用于快速排序数组,最后遍历并打印排序后的学生信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值