前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言实现录入学生信息并按分数排序输出

C语言实现录入学生信息并按分数排序输出

作者头像
C语言中文社区
发布2022-05-31 09:21:58
7640
发布2022-05-31 09:21:58
举报
文章被收录于专栏:C语言中文社区C语言中文社区

需求

  • 实现在控制台录入学生姓名和分数
  • 使用冒泡排序法将录入的信息按分数从大到小输出

分析

根据需求将按照以下步骤来实现

  1. 定义学生结构体,结构体成员包含学生的姓名和分数
  2. 定义结构体数组存放学生信息
  3. 用冒泡排序法将录入的信息按分数从大到小排序
  4. 循环遍历排序后的结构体数组的信息

代码实现

  • student.h
代码语言:javascript
复制
#include <stdio.h>

typedef struct student {
    char name[20];
    int score;
}stu;

static void add_stu_info(stu student[], int n);
static void show_stu_info(stu student[], int n);
  • sort.c
代码语言:javascript
复制
#include "student.h"

void bubble_sort(stu student[], int n) {
    stu temp;
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (student[j].score < student[j + 1].score) {
                temp = student[j];
                student[j] = student[j + 1];
                student[j + 1] = temp;
            }
        }

    }
}
  • student.c
代码语言:javascript
复制
#include "student.h"

#define NUM 5
extern void bubble_sort(stu student[], int n);

int main() {
    stu students[NUM];
    add_stu_info(students, NUM);
    bubble_sort(students, NUM);
    show_stu_info(students, NUM);
    return 0;
}

static void add_stu_info(stu student[], int n) {
    for (int i = 0; i < n; i++) {
        printf("请输入学生姓名:\n");
        scanf_s("%s", &student[i].name, 20);
        printf("请输入学生得分:\n");
        scanf_s("%d", &student[i].score);
    }
}

static void show_stu_info(stu student[], int n) {
    for (int i = 0; i < n; i++) {
        printf("姓名:%s,分数:%d\n", student[i].name, student[i].score);
    }
}

运行结果

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C语言中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求
  • 分析
  • 代码实现
  • 运行结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档