C语言OJ项目参考(2878)学生信息排序

简介: 2878: 结构体–学生信息排序Description 定义存放一个学生信息的结构体类型,学生信息包括:姓名,学号,性别,院系,要求在随意输入5个学生的相关信息后,按照学号从小到大顺序输出这些学生的信息。 Input 先输入5名学生的信息,按学号顺序排序输出后在输入要统计的院系名称 Output 先按学号从小到大的顺序输出学生信息 Sample Input zha

2878: 结构体–学生信息排序

Description
定义存放一个学生信息的结构体类型,学生信息包括:姓名,学号,性别,院系,要求在随意输入5个学生的相关信息后,按照学号从小到大顺序输出这些学生的信息。
Input
先输入5名学生的信息,按学号顺序排序输出后在输入要统计的院系名称
Output
先按学号从小到大的顺序输出学生信息
Sample Input
zhang3 20149003 M 信息系
zhang5 20149005 F 信息系
zhang10 20149010 F 管理系
zhang1 20149001 M 会计系
zhang9 20149009 M 会计系
Sample Output
zhang1 20149001 M 会计系
zhang3 20149003 M 信息系
zhang5 20149005 F 信息系
zhang9 20149009 M 会计系
zhang10 20149010 F 管理系
HINT
数据输出之间有4个空格

参考解答

#include <stdio.h>
#include <string.h>
#define N 5
struct Student
{
    char name[8]; //学生姓名
    char num[10]; //学生学号
    char sex; //性别
    char dept[20]; //院系
};

int main( )
{
    struct Student stu[N],tmp;
    int i,j;
    //输入
    for(i=0; i<N; i++)
    {
        scanf("%s    %s    %c    %s",stu[i].name, stu[i].num,&stu[i].sex, stu[i].dept);
    }
    //排序i
    for(j=0; j<N-1; j++)
        for(i=0; i<N-j-1; i++)
            if (strcmp(stu[i].num,stu[i+1].num)>0) //如果前面的小于后面的
            {
                tmp=stu[i]; //交换两个数的位置,结构体可以直接赋值
                stu[i]=stu[i+1];
                stu[i+1]=tmp;
            }
    for(i=0; i<N; i++)
    {
        printf("%s    %s    %c    %s\n",stu[i].name, stu[i].num,stu[i].sex,stu[i].dept);
    }
    return 0;
}
目录
相关文章
|
1月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(下)(c语言实现)(附源码)
本文继续学习并实现了八大排序算法中的后四种:堆排序、快速排序、归并排序和计数排序。详细介绍了每种排序算法的原理、步骤和代码实现,并通过测试数据展示了它们的性能表现。堆排序利用堆的特性进行排序,快速排序通过递归和多种划分方法实现高效排序,归并排序通过分治法将问题分解后再合并,计数排序则通过统计每个元素的出现次数实现非比较排序。最后,文章还对比了这些排序算法在处理一百万个整形数据时的运行时间,帮助读者了解不同算法的优劣。
135 7
|
1月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(上)(c语言实现)(附源码)
本文介绍了四种常见的排序算法:冒泡排序、选择排序、插入排序和希尔排序。通过具体的代码实现和测试数据,详细解释了每种算法的工作原理和性能特点。冒泡排序通过不断交换相邻元素来排序,选择排序通过选择最小元素进行交换,插入排序通过逐步插入元素到已排序部分,而希尔排序则是插入排序的改进版,通过预排序使数据更接近有序,从而提高效率。文章最后总结了这四种算法的空间和时间复杂度,以及它们的稳定性。
115 8
|
1月前
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
36 1
|
2月前
|
算法 C语言
【C语言】排序查找
【C语言】排序查找
|
2月前
|
NoSQL 算法 Redis
Redis的实现三:c语言实现平衡二叉树,通过平衡二叉树实现排序集
本博客介绍了如何在C语言中实现一个平衡二叉树,并通过这个数据结构来模拟Redis中的排序集功能。
22 0
|
6月前
|
C语言
C语言实战项目——学生试卷分数统计
C语言实战项目——学生试卷分数统计
|
6月前
|
C语言
C语言学习记录——鹏哥扫雷项目实现及递归展开、记录雷坐标
C语言学习记录——鹏哥扫雷项目实现及递归展开、记录雷坐标
79 0
|
27天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
58 10
|
27天前
|
存储 程序员 C语言
【C语言】文件操作函数详解
C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
45 9
|
27天前
|
存储 Unix Serverless
【C语言】常用函数汇总表
本文总结了C语言中常用的函数,涵盖输入/输出、字符串操作、内存管理、数学运算、时间处理、文件操作及布尔类型等多个方面。每类函数均以表格形式列出其功能和使用示例,便于快速查阅和学习。通过综合示例代码,展示了这些函数的实际应用,帮助读者更好地理解和掌握C语言的基本功能和标准库函数的使用方法。感谢阅读,希望对你有所帮助!
38 8