输入50个学生的记录(每个学生的记录包括学号和成绩),组成记录数组,然后按成绩由高到低的次序输出(每行10个记录)。排序方法采用选择排序。
typedef struct { int num; float score; }RecType;void SelectSort(RecType R[51],int n){ for(i=1; i<n; i++){ //选择第i大的记录,并交换到位k=i; //假定第i个元素的关键字最大 for(j=i+1;j<=n;j++) //找最大元素的下标 if(R[j].score>R[k].score) k=j;if(i!=k) R[i] <-->R[k]; //与第i个记录交换}//for for(i=1; i<=n; i++) //输出成绩 { printf("%d,%f",R[i].num,R[i].score); if(i%10==0) printf("\n");}}//SelectSort[/i][/i][/i]
本题目来自[网课答案]本页地址:https://www.wkda.cn/ask/ptxpmzxxomyjzoo.html
举一反三
- 已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩排序记录。
- 已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩记录排序。(成绩最高的学生的排在数组的最前行,成绩最低的学生牌子啊数组的最后面的一行)
- ⒊有5个学生,每个学生数据包括学号、姓名、性别、3门成绩、总成绩、平均成绩。从键盘输入学生成绩。然后用选择法按照总成绩由大到小对5个学生进行排序,最后输出排序的结果。要求输入、排序、输出用3个自定义函数实现。
- 编写函数print,打印一个学生的成绩数组,该数组中有若干个学生的数据记录,每个记录包括num,name,score[3]
- 编写一个函数print,打印一个学生的成绩数组,该书组中有五个学生的数据,每个学生的数据包括num(学号)、name(姓名)、score(3门课的成绩)、用主函数输入这些数据,用print函数输出这些记录。
内容
- 0
程序4 输入30个学生5门课程的成绩,按照每个学生的平均分由高到低排序。
- 1
从学生表中查询所有学生记录,按学号排序的语句是:select * from 学生表 order by 学号
- 2
编程题 建立一个学生的结构记录,要求包括学号,姓名和成绩。输入整数n(n<10),再输入n个学生的基本信息,要求计算并输出他们的平均成绩(保留2位小数)。 3 1 zhang 70 2 wang 80 3 qian 70 输出样例: 73.33
- 3
输入10个学生的学号、姓名和成绩,输出学生的成绩等级和不及格人数。每个学生的记录包括学号、姓名、成绩和等级,要求定义和调用函数set_grade()根据学生成绩设置其等级,并统计不及格人数,等级设置:85-100为A,70一84为B,60一69为C,0一59为D。
- 4
【单选题】语句“ INSERT INTO 学生成绩 SELECT * FROM 学生成绩备份”的功能是 A. 显示“学生成绩备份”数据表的所有记录 B. 显示“学生成绩”数据表的所有记录 C. 把“学生成绩备份”数据表中的所有记录添加到“学生成绩”数据表中 D. 把“学生成绩”数据表中的所有记录添加到“学生成绩备份”数据表中