精华内容
下载资源
问答
  • <p style="text-align:center"><img alt="" src="https://img-ask.csdnimg.cn/upload/1623552254688.jpg" /></p> 如图,求大神解答呜呜呜急求</p>
  • 问题描述:学生成绩排序。输入n(n<50)个学生的成绩排名,按照学生平均成绩从高到低输出他们的信息源代码:/*学生成绩排序*//*输入n(n<50)个学生的成绩排名,按照学生平均成绩从高到低输出他们的信息*/#...

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

    源代码:

    /*学生成绩排序*/

    /*输入n(n<50)个学生的成绩排名,按照学生平均成绩从高到低输出他们的信息*/

    #include

    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

    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

    index=i;

    for(j=i+1;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

    printf("%d\t%s\t%.2lf\n",students[i].num,students[i].name,students[i].average);

    return 0;

    }

    运行结果:

    3972d8fe86f2

    学生成绩排序

    注意事项:

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

    程序参数:

    输出大小: 151.6787109375 KiB

    编译时间: 0.31s

    展开全文
  • printf("****************************ZX学生管理系统1。 0测试版***************************** "); loop:printf("1。通过学号查找信息 2。通过姓名查找信息 3。添加学生信息 4。删除学生信息 5。文件操作 请输入...

    #include "stdafx。h"

    #include "stdio。h"

    #include "string。h"int main(int argc, char* argv[])

    {

    struct days

    {

    int year;

    int mon;

    int day;

    };

    struct max

    {

    int num;

    char name[20];

    float cpp;

    float data;

    float english;

    struct days mon;

    }stu[100]={0,"",0,0,0,0,0,0};

    int a,b,c,yanz=0;

    char name[50];

    FILE *fp;

    printf("****************************ZX学生管理系统1。

    0测试版*****************************

    ");

    loop:printf("1。通过学号查找信息

    2。通过姓名查找信息

    3。添加学生信息

    4。删除学生信息

    5。文件操作

    请输入操作代码(1~6):");

    scanf("%d",&a);

    switch(a)

    {

    case 1:

    printf("请输入学生学号:");

    scanf("%d",&c);

    for(b=0;b=99) printf("空间已满!

    ");

    break;

    case 4:

    printf("请输入要删除的那个学生学号:");

    scanf("%d",&c);

    for(b=0;b<100;b )

    if(stu[b]。

    num==c)

    {

    stu[b]。num=NULL;

    printf("删除成功!

    ");

    yanz=1;

    }

    if(yanz==0) printf("找不到学号为%d学生的信息!",c);

    break;

    case 5:

    printf("1。

    保存信息文件

    2。新建文件

    3。读取文件

    请输入操作代码:");

    scanf("%d",&c);

    if(c==1)

    {

    printf("请输入输入文件路径:");

    scanf("%s",&name);

    if((fp=fopen(name,"ab"))!=0)

    {

    for(b=0;b<100;b )

    if(stu[b]。

    num!=0)fwrite(&stu[b],sizeof(struct max),1,fp);

    fclose(fp);

    }

    else  printf("保存文件失败,可能文件被保护或磁盘写满!

    ");

    }

    else if(c==2)

    {

    printf("请输入输入文件名:");

    scanf("%s",&name);

    fp=fopen(name,"wb");

    fclose(fp);

    }

    else if(c==3)

    {

    printf("请输入输入文件路径:");

    scanf("%s",&name);

    if((fp=fopen(name,"rb"))!=0)

    {

    for(b=0;b<100;b )

    fread(&stu[b],sizeof(struct max),1,fp);

    fclose(fp);

    }

    else printf("读取文件失败,可能文件不存在或被保护!

    ");

    }

    else printf("输入错误!

    ");

    }

    goto loop;

    return 0;

    }。

    全部

    展开全文
  • 希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行依次直接插入排序。算法步骤选择一个增量序列 t1,t2,……,tk,其中 ...

    希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行依次直接插入排序。

    算法步骤

    选择一个增量序列 t1,t2,……,tk,其中 ti > tj, tk = 1;

    按增量序列个数 k,对序列进行 k 趟排序;

    每趟排序,根据对应的增量 ti,将待排序列分割成若干长度为 m 的子序列,分别对各子表进行直接插入排序。仅增量因子为 1 时,整个序列作为一个表来处理,表长度即为整个序列的长度。

    045546f5396e

    image

    #include

    #include

    #include

    #include

    #include

    //交换数值

    void swap(int *a,int *b)

    {

    int temp = *a;

    *a = *b;

    *b = temp;

    }

    //打印数组

    void printArray(char msg[],int arr[],int len){

    printf("%s:",msg);

    for (int i = 0; i < len; i++){

    printf("%d ", arr[i]);

    }

    printf("\n");

    }

    //希尔排序

    void shell_sort(int a[], int len){

    //分组:len/2,缩小增量为:g/2,直到最后每个组只有一个元素

    for(int g=len>>1;g>0;g>>=1){

    //选取下标为g的元素为要插入的元素,i累加1为一组,每个组有g个元素

    for(int i=g;i

    int temp=a[i];

    //将下标为j的元素与下标为j-g对比,即j,j-g,j-g-g...为一组,对此组做插入排序

    for(int j=i;j>0&&a[j-g]>temp;j-=g){

    a[j] = a[j-g];

    a[j-g]=temp;

    }

    }

    printf("分成%d组",g);

    printArray("",a,len);

    }

    }

    int main()

    {

    int len=10;

    int arr[len];

    srand((unsigned)time(NULL));

    //随机生成长度为"len"的数组

    for(int i=0;i

    arr[i]=rand()%200;

    }

    printArray("未排序前",arr,len);

    shell_sort(arr,len);

    printArray("希尔排序",arr,len);

    //防止windows下控制台窗口闪退

    int s;

    scanf("%d",&s);

    return 0;

    }

    运行结果:

    未排序前:163 54 134 74 10 69 167 198 57 151

    分成5组:69 54 134 57 10 163 167 198 74 151

    分成2组:10 54 69 57 74 151 134 163 167 198

    分成1组:10 54 57 69 74 134 151 163 167 198

    希尔排序:10 54 57 69 74 134 151 163 167 198

    展开全文
  • printf("请输入学生总数:\n"); scanf("%d",&n); for(i=0;i { scanf("%d %s %d %d %d",&students[i].stunum,students[i].stuname,&students[i].stuscore1,&students[i].stuscore2,&students[i].stuscore3); } ...

    满意答案

    dcebd7a0de6265b6ccae5ead692f1eab.png

    暖重逢

    2014.04.25

    dcebd7a0de6265b6ccae5ead692f1eab.png

    采纳率:58%    等级:7

    已帮助:460人

    #include 

    int main()

    {

    struct student

    {

    int stunum;

    char stuname[20];

    int stuscore1;

    int stuscore2;

    int stuscore3;

    };

    int i=0;

    int j=0;

    int range=0;

    struct student students[100];

    struct student temp;

    int n=0;

    printf("请输入学生总数:\n");

    scanf("%d",&n);

    for(i=0;i

    {

    scanf("%d %s %d %d %d",&students[i].stunum,students[i].stuname,&students[i].stuscore1,&students[i].stuscore2,&students[i].stuscore3);

    }

    scanf("%d",&range);

    switch(range)

    {

    case 1:

    {

    for(i=0;i

    {

    for(j=0;j

    {

    if(students[j].stuscore1

    {

    temp=students[j];

    students[j]=students[j+1];

    students[j+1]=temp;

    }

    if(students[j].stuscore1==students[j+1].stuscore1)

    {

    if(students[j].stunum>students[j+1].stunum)

    {

    temp=students[j];

    students[j]=students[j+1];

    students[j+1]=temp;

    }

    }

    }

    }

    for(i=0;i

    {

    printf("%d %s %d %d %d\n",students[i].stunum,students[i].stuname,students[i].stuscore1,students[i].stuscore2,students[i].stuscore3);

    }

    break;

    }

    case 2:

    {

    for(i=0;i

    {

    for(j=0;j

    {

    if(students[j].stuscore2

    {

    temp=students[j];

    students[j]=students[j+1];

    students[j+1]=temp;

    }

    if(students[j].stuscore2==students[j+1].stuscore2)

    {

    if(students[j].stunum>students[j+1].stunum)

    {

    temp=students[j];

    students[j]=students[j+1];

    students[j+1]=temp;

    }

    }

    }

    }

    for(i=0;i

    {

    printf("%d %s %d %d %d\n",students[i].stunum,students[i].stuname,students[i].stuscore1,students[i].stuscore2,students[i].stuscore3);

    }

    break;

    }

    case 3:

    {

    for(i=0;i

    {

    for(j=0;j

    {

    if(students[j].stuscore3

    {

    temp=students[j];

    students[j]=students[j+1];

    students[j+1]=temp;

    }

    if(students[j].stuscore3==students[j+1].stuscore3)

    {

    if(students[j].stunum>students[j+1].stunum)

    {

    temp=students[j];

    students[j]=students[j+1];

    students[j+1]=temp;

    }

    }

    }

    }

    for(i=0;i

    {

    printf("%d %s %d %d %d\n",students[i].stunum,students[i].stuname,students[i].stuscore1,students[i].stuscore2,students[i].stuscore3);

    }

    break;

    }

    }

    return 0;

    }

    01分享举报

    展开全文
  • 像选择排序、插入排序、冒泡排序都是刚开始接触排序时,接触比较多的排序算法,希尔排序往往在学习了以上几种排序算法后再进行学习,当然,这也是因为希尔排序的实现是基于插入排序来实现的。首先我们要确定一个间隔...
  • C语言程序成绩排序

    2012-11-23 01:12:45
    这是一个C语言程序,用以给学生成绩算总分和平均分,并且按照总分平均分高到底排序
  • C语言学生成绩排序

    千次阅读 2020-07-17 12:22:38
    特此附上代码,便于查看和学习 ... //定义一个数组来保存学生姓名和成绩 float mark[100],fTemp; int i,j,iNum; puts("请输入学生数"); scanf("%d",&iNum); puts("请分别输入姓名和成绩"); f
  • 1. 学生成绩排序系统简介 学生成绩排序系统可实现学生信息输入、学生信息输出、学生信息查询、学生成绩排序等功能。程序要求提供简单友好易于操作的界面。程序以C语言开发。 2.学生成绩管理系统基本要求: 假设有5名...
  • 本文实例为大家分享了C语言学生成绩管理系统的具体代码,供大家参考,具体内容如下 一、本设计涉及的重要C语言知识有: 1.单链表的各种操作 2.文件流的操作 3.单链表的排序 二、本设计主要以下几个模块组成 1.学生...
  • 问题 B: C语言-成绩排序 时间限制:1Sec内存限制:128 MB 提交:1000解决:617 [提交] [状态] [命题人:外部导入] 题目描述 现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。 编写一个函数input,用来输入...
  • 用希尔排序法对一组数据由小到大进行排序,数据分别为 69、56、12、136、3、55、46、 99、88、25。实现过程:(1)自定义函数 shsort(),实现希尔排序。(2) main() 函数作为程序的入口函数。程序代码如下:#include ...
  • 本文实例为大家分享了C语言学生成绩管理系统的具体代码,供大家参考,具体内容如下 Ps:后加了个链表排序,用冒泡写的。 /* Title : Student's score management system Author: nyist_xiaod Date : 2012.5.8 */...
  • C语言学生成绩统计程序(排序版)

    万次阅读 多人点赞 2019-12-11 14:29:12
    printf("\t* 将学生成绩排序并输出---3 *\n"); printf("\t* 退出系统-----------------0 *\n"); printf("\t* *\n"); printf("\t************************************\n"); printf("\t请选择功能:"); ...
  • 任务1 输入/输出多个学生一门课程的成绩;; 一维数组的定义;说明:常量表达式表示元素的个数,即数组长度。 常量表达式中可以包括常量和符合常量,不能包含变量。 ;任务1 输入/输出多个学生一门课程的成绩;任务1 输入...
  • 学生成绩管理系统设计》 二、实训目的 (1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。 (2)掌握C++的基本概念和基础知识。 (3)通过训练能够读懂较为复杂的C++语言源程序...
  • C语言学生成绩管理系统

    千次阅读 多人点赞 2019-11-07 14:49:58
    学生成绩管理系统(C语言)需求代码总结 大学正式上课的第一个月10.8~11.7,学到了很多东西,收获颇多,刚入校只会用现成的,只会调用各种函数,把封装好的东西拿来用。现在可以自己不抄别人,完全按照自己的思路写...
  • C语言 学生成绩管理

    2009-03-06 22:50:23
    C语言学生成绩 包含成绩的输入、删除、排序等等。。。。。。
  • 满意答案woaizyb推荐于 2018.05.24采纳率:49%等级:12已帮助:7953人#include#includetypedefstructstudent{intindex;...//根据学生成绩进行冒泡排序voidranking(STUDENT_T*a,intcnt){inti=0;in...
  • PTA(C语言学生成绩排序

    千次阅读 2019-02-11 16:07:48
    假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型。输入n(n&amp;lt;50)个学生成绩信息,按照学生的...输出从高到低排序后的学生信息,包括:学号、姓...
  • c语言学生成绩排序

    千次阅读 2015-06-27 22:17:00
    //学生编号 int b[3]; //成绩 int i; char s[3][20]; //学生姓名 char *str; FILE *fp = fopen("C:\\Users\\liuxi_001\\Desktop\\student.txt", "r"); //文件 for(i=0; i; i++) { fscanf(fp, "%d%s%d\n", &...
  • 统计学生成绩 6.排序学生资料 7.保存学生资料 8.另存学生资料 9.帮助信息提示 10.打印学生资料至文本。 压缩包文件包括:1.项目C语言源代码 2.编译后的一个可执行文件 3.学生资料txt,方便导入学生资料。
  • C语言学生成绩统计

    2015-05-21 16:45:13
    录入学生的信息,并且保存到一个磁盘文件。可以录入学生的平时成绩...按照总成绩学生进行排序,查询某个学生成绩(按照学号、姓名、成绩等关键词进行查询)。制定学生信息至少包括:学号、姓名、班级、成绩等内容。
  • 学生成绩管理系统需要维护一组学生成绩信息,实现增删查改统计排序以及读取保存,使用结构体数组。 文件的读写需要用到c语言的文件操作函数。 显示学生成绩信息功能分为三个小功能:根据目生成绩信息数量遍历学生...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,501
精华内容 3,800
关键字:

c语言学生成绩排序

c语言 订阅