精华内容
下载资源
问答
  • 1:如果一个班有5个同学考试成绩如下,需要我们通过程序的方式来对成绩从高到低来排序学生成绩如下:88,52,67,93,87(各个同学的成绩不相等)方法一:list = [88,52,67,93,87] #这5个学生的成绩存入列表或者数组...

    刚接触程序语言的时候,经常会用到一些排序的问题,按照算法运行效率和理解上面来看的话,有的时候我们可以记录一些比较便于理解的;

    1:如果一个班有5个同学考试成绩如下,需要我们通过程序的方式来对成绩从高到低来排序,学生成绩如下:

    88,52,67,93,87(各个同学的成绩不相等)

    方法一:

    list = [88,52,67,93,87] #将这5个学生的成绩存入列表或者数组

    rank = [1,1,1,1,1] #新设置一个列表(数组)用于存放list列表中各个元素的排位情况(长度需要跟list一致),这个地方之所以把每个元素设置为1,程序中可以理解

    new=[0,0,0,0,0] #定义一个新的列表(数组),用于存放排序后的成绩

    for j in range(0,5): #此处用python的语法,用C语言可以是 for(j=0,j<5,j++),此循环设置的目的是用于遍历list列表(数组)

    sm = list[j] #将列表(数组)中第一个值赋值给 sm,暂存list元素的值,用于设定后面的值来跟本值的比较,从list第一个元素(88)开始---87结束

    for m in list: #再设定一个循环来提取list的每个元素与刚才暂存的sm来比较

    if m > sm:

    rank[j]=rank[j]+1 #此处是比较关键的,当后面提取出来list元素的值比暂存的sm的值大的时候,rank[j]对应的值就加1;这里要说明一下,比如提取的是“93”,因为93比

    #88的值要大,所以按照排序的位置,93就要排到88的前面,如果93排的是“1”号位置,那么88通过本次比较就往后移动1位;因本来我们设定的rank里  #面各元素的值都是1,于是当我们把里面的值“+1”的次数统计出来后,自然就记录好了这个数在整个数列中应该排的位置。

    print(rank) #于是得出的rank的结果是:[2,5,4,1,3] ,证明,list中的各个数据对应的排序位置应该是2,5,4,1,3

    for n in range(0,5): #再次设置一个5次循环,用于遍历list

    new[rank[n]-1]=list[n] #分别把list当前的值替换新列表中排位中的数据,比如88应该排第二位,那就替换新列表中2号位置的数据,new[1](rank[n]-1 列表和数组位置从0开始 #的,所以此处记得“-1”)

    print(new) #执行后结果:[93, 88, 87, 67, 52]

    分析:如果按照冒泡排序的方式,就是每次比较2个数字,譬如A,B,C,D,E,步骤:1,A与B比较,如果A大 2,拿A去跟C比较,如果A比C大 3,A跟D比较,如果A比D大。4,A与E比较。那么问题来了,A是比较出来了,是最大的,关键是B,C,D,E之间还得重新比较一下又要重新交换位置,尤其是数据多了以后,程序就不太便于理解;而设置一个跟原数组同长度的数组后,就便于理解和记录每个元素应该排放的位置了;当然这是个例子,本题数据是不相同的,那么数据相同了的话,要做多两层判断了,留下供思考;

    方法二:因python中有自带的一些实用的函数,处理起来就非常的简便了

    list2=[93, 88, 87, 67, 52]

    list2.sort(reverse=True)

    print(list2) #此时不管里面是否有相同分数的,都可以正常排序出来(只是我们没有研究sort内部的算法)

    展开全文
  • 问题描述:学生成绩排序。输入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

    展开全文
  • 学生成绩冒号排序,实例练习。
  • 学生成绩排序

    2015-01-11 01:13:41
    学生成绩排序:从键盘输入一系列以$为结束的字符串,然后对其中的非数字字符进行计数,并显示出计数结果。 5.12 有一个首地址为MEM的100D字数组,试编制程序删除数组中所有为零的项,并后续项向前压缩,最后...
  • 课程设计:学生成绩排序统计系统学生成绩数据排序小程序 课程设计:学生成绩排序统计系统学生成绩数据排序小程序
  • 学生成绩排序c++

    2015-10-22 16:27:41
    对输入的学生成绩排序,输出并保存于excel文件中,c++面向对象程序
  • 汇编语言实现的学生成绩排序,课程设计时候做的,包含源代码及实验报告完整版
  • 学生成绩管理C++。按照各单科成绩排序、总分排序。
  • JAVA 输入学生成绩后总成绩排序输出,添加异常输入处理。
  • python-学生成绩排序

    万次阅读 2019-01-28 22:39:44
    学生成绩排序(类与对象练习)(10分) 题目内容: 设计一个学生类(Student),其中的数据成员有:字符串类型sname表示录入的学生姓名,整型值mscore代表学生的数学成绩,整型值cscore代表学生的语文成绩,整型值...

    学生成绩排序(类与对象练习)(10分)

    题目内容:

    设计一个学生类(Student),其中的数据成员有:字符串类型sname表示录入的学生姓名,整型值mscore代表学生的数学成绩,整型值cscore代表学生的语文成绩,整型值escore代表学生的英语成绩。

    然后要求根据录入的学生成绩(各不相同),输出总分最高的学生姓名和各科目成绩。

     

     

    输入格式:

    输入分为4个部分:

    先输入学生姓名,以空格分隔;

    然后输入学生的数学成绩(各不相同的正整数),也以空格分隔;

    再输入学生的语文数学成绩(各不相同的正整数),也以空格分隔。

    最后输入学生的英语数学成绩(各不相同的正整数),也以空格分隔。

    学生姓名个数和成绩个数一定会相同。

     

    输出格式:

    共一行,为总分最高的学生姓名和各科目成绩,以空格分隔。

     

    输入样例:

    jack tom

    95 84

    90 75

    85 90

     

    输出样例:

    jack 95 90 85

    时间限制:500ms内存限制:32000kb

    程序:

    names=input().split()
    mscores=list(map(int,input().split()))
    cscores=list(map(int,input().split()))
    escores=list(map(int,input().split()))
    class Student:
        def __init__(self,n,m,c,e):
            self.n,self.total=n,m+c+e
            self.m,self.c,self.e=m,c,e
        def __lt__(self, other):
            return self.total<other.total
        def __str__(self):
            return '%s %d %d %d' %(self.n,self.m,self.c,self.e)
    s=[]
    for i in range(len(names)):
        s.append(Student(names[i],mscores[i],cscores[i],escores[i]))
    s.sort()
    print(s[-1])

     

    展开全文
  • 输入学生姓名、学号、成绩,会按学生成绩高低排序并输出排名,使用结构体存储,可通过学生学号查找学生成绩并修改(也可以选择不修改),
  • *学生成绩排序

    千次阅读 2019-03-28 10:15:24
    编写一个程序,功能是对若干个同学的某门课程成绩进行排序。... 从键盘输入学生的个数、学号及一门课程的成绩,调用排序程序后,将排序后的结果输出。输入、输出格式如下: 输入: 3 1001 90 1002 80 1003...

           编写一个程序,功能是对若干个同学的某门课程成绩进行排序。

           要求定义一个学生类,类中私有成员有学生的编号及成绩;成员函数有建立数据、输入数据函数;编写一个友元函数能完成对成绩由高到低排序。

            从键盘输入学生的个数、学号及一门课程的成绩,调用排序程序后,将排序后的结果输出。输入、输出格式如下:

    输入:

    3

    1001 90

    1002 80

    1003 85

    输出:

    学号:1001 成绩:90

    学号:1003 成绩:85

    学号:1002 成绩:80

    #include<iostream>  
    using namespace std;  
    class Student  
    {  
          
        public:  
            int a,b[10][2];  
            void getscore();  
            void putscore();  
        friend Student paixu(Student student);    
    };  
    void Student::getscore()  
    {  
        cin>>a;  
        for(int i=0;i<a;i++)  
        {  
            cin>>b[i][0]>>b[i][1];  
        }  
    }  
    void Student::putscore()  
    {  
        for(int i=0;i<a;i++)  
        {  
            cout<<"学号:"<<b[i][0]<<"  成绩:"<<b[i][1]<<endl;  
        }  
    }  
    Student paixu(Student student)  
    {   int c[1][2];  
        for(int i=0;i<student.a;i++)  
        {  
            for(int j=0;j<student.a-1;j++)  
            {  
                if(student.b[j][1]<student.b[j+1][1])  
                {c[0][0]=student.b[j][0];  
                c[0][1]=student.b[j][1];  
                student.b[j][0]=student.b[j+1][0];  
                student.b[j][1]=student.b[j+1][1];  
                student.b[j+1][0]=c[0][0];  
                student.b[j+1][1]=c[0][1];  
                }  
            }     
        }  
        return student;  
    }  
    int main()  
    {  
        Student student,s2;  
        student.getscore();  
        s2=paixu(student);  
        s2.putscore();  
        return 0;  
    } 

     

    展开全文
  • java 学生成绩排序

    千次阅读 2017-12-14 13:30:00
    编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行效果如图: import java.awt.BorderLayout; import java.awt.event....
  • 对某班学生成绩排序。从键盘依次输入某班学生的姓名和成绩(一个班级人数最多不超过50人)并保存,然后分别按学生成绩由高到低顺序输出学生姓名和成绩,成绩相同时,则按输入次序排序。 【输入形式】 从键盘依次输入...
  • 任意输入成绩排序,对学生成绩进行排序和查找
  • 1. 学生成绩排序系统简介 学生成绩排序系统可实现学生信息输入、学生信息输出、学生信息查询、学生成绩排序等功能。程序要求提供简单友好易于操作的界面。程序以C语言开发。 2.学生成绩管理系统基本要求: 假设有5名...
  • 汇编学生成绩排序

    2013-06-10 14:12:00
    buf db 100 dup(0),'$' ;总空间 buf1 db 10,?,10 dup(0),0ah,0dh,'$' ;输入姓名
  • C++学生成绩排序

    万次阅读 多人点赞 2015-12-13 22:16:07
    定义一个包含学生学号、姓名、年龄和三门课成绩的结构体,输入10个学生信息,并按总成绩由高到低的顺序排序并输出。
  • C#设计学生成绩排序

    2021-04-16 10:44:58
    设计控制台应用程序,输入若干个学生的英语和数学成绩,求出总分,并按总分从高到低排序,要求设计一个学生类Student,包括数据成员(学号,姓名,英语成绩,数学成绩)。所有学生对象存放在一个Student对象数组中...
  • 用汇编语言编写,从键盘读入某班学生(人数 £ 15)的考试成绩,然后对该班的成绩进行递减排序,要求显示排序结果,并对全班成绩进行统计,给出小于60分、60分段、70分段、80分段和90分段各段的人数以及全班的平均...
  • C语言对学生成绩排序

    千次阅读 2020-07-17 12:22:38
    特此附上代码,便于查看和学习 ... //定义一个数组来保存学生姓名和成绩 float mark[100],fTemp; int i,j,iNum; puts("请输入学生数"); scanf("%d",&iNum); puts("请分别输入姓名和成绩"); f

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,215
精华内容 24,086
关键字:

怎样将学生成绩排序