【C语言】输入 三科成绩(java c asp) 总分排名 和平均分


1、简介

将允许用户输入学生的姓名和三科成绩(Java、C、ASP),计算总分和平均分,并按照总分降序对学生进行排序。

2、程序功能

  • 输入学生信息:姓名和三科成绩。
  • 计算总分和平均分。
  • 按总分降序排序学生信息。
  • 打印排序后的学生信息。

3、代码实现

#include <stdio.h>
#include <string.h>
//输入 三科成绩(java c asp) 总分排名 和平均分
// 定义结构体,包含三科成绩、总分和平均分
struct Student {
    char name[12];
    int scores[3]; 
    int sum; // 总分
    float average; // 平均分
};

// 按照总分降序排序
void bubbleSort(struct Student students[], int n) {
    int i, j;
    for (i = 0; i < n; i++) {
        for (j = 0; j < n - 1; j++) {
            if (students[j].sum < students[j + 1].sum) {
                // 交换两个学生的总分、平均分、成绩和姓名
                struct Student temp = students[j];
                students[j] = students[j + 1];
                students[j + 1] = temp;
            }
        }
    }
}

int main() {
    int n, i, j;
    
    printf("请输入学生人数:");
    scanf("%d", &n); 

    struct Student students[n];

    for (i = 0; i < n; i++) {
        printf("请输入第%d位学生的姓名:", i + 1);
        scanf("%s", students[i].name);
        printf("请输入%s、%s和%s的成绩:", "Java", "C", "ASP");
        for (j = 0; j < 3; j++) {
            scanf("%d", &students[i].scores[j]);
        }
    
        // 计算总分和平均分
        students[i].sum = 0;
        for (j = 0; j < 3; j++) {
            students[i].sum += students[i].scores[j];
        }
        students[i].average = (float)students[i].sum / 3;
    }

    bubbleSort(students, n);
    printf("按总分降序排列的学生信息:\n");
    for (i = 0; i < n; i++) {
        printf("%s: 总分 = %d, 平均分 = %.2f\n", students[i].name, students[i].sum, students[i].average);
    }

    return 0;
}

4、代码解释

  1. 结构体定义:定义了一个Student结构体,包含学生的姓名、三科成绩、总分和平均分。
  2. 输入学生信息:通过循环让用户输入每个学生的姓名和三科成绩。
  3. 计算总分和平均分:对于每个学生,计算其总分和平均分。
  4. 排序函数:使用冒泡排序算法按照总分降序对学生数组进行排序。
  5. 输出排序结果:打印排序后的学生信息,包括姓名、总分和平均分。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪里个浪的1024

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值