-
2022-03-20 14:26:16
void calc(struct student *p,int n) { int i; for(i=0;i<n;i++) { p[i].sum=0; for(int j=0;j<3;j++) { p[i].sum+=p[i].score[j]; } } } void sort(struct student *p,int n) { struct student ad; int i,j; for(i=0;i<n;i++) { for(j=i+1;j<n+1;j++) { if(p[i].sum<p[j].sum) { ad=p[i]; p[i]=p[j]; p[j]=ad; } } } }
有一组学生数据,每个数据中含有三门课成绩,请按成绩总和从高到低对这组数据进行排序。 编写函数calc求出每名学生的总分。 编写函数sort按每名学生的总分从高到低对这组数据进行排序
函数接口定义:
void calc(struct student *p,int n); void sort(struct student *p,int n);
其中
p
和n
都是用户传入的参数。 函数calc求出p
指针所指的结构体数组中n
名学生各自的总分。 函数sort对p
指针所指的结构体数组的学生数据按总分降序排序。裁判测试程序样例:
#include <stdio.h> struct student { int num; char name[15]; float score[3]; float sum; }; void calc(struct student *p,int n); void sort(struct student *p,int n); int main() { struct student stu[5]; int i,j; float f; for(i=0;i<5;i++) { scanf("%d%s",&stu[i].num,stu[i].name); for(j=0;j<3;j++) { scanf("%f",&f); stu[i].score[j]=f; } } calc(stu,5); sort(stu,5); for(i=0;i<5;i++) { printf("%5d%15s",stu[i].num,stu[i].name); printf(" %.1f %.1f %.1f %.1f\n",stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].sum); } return 0; /* 请在这里填写答案 */
输入样例:
1 zhang 89 87 85 2 liu 92 98 96 3 li 74 71 72 4 xion 95 98 99 5 liu 99 100 100
输出样例:
5 liu 99.0 100.0 100.0 299.0 4 xion 95.0 98.0 99.0 292.0 2 liu 92.0 98.0 96.0 286.0 1 zhang 89.0 87.0 85.0 261.0 3 li 74.0 71.0 72.0 217.0
代码:
void calc(struct student *p,int n) { int i; for(i=0;i<n;i++) { p[i].sum=0; for(int j=0;j<3;j++) { p[i].sum+=p[i].score[j]; } } } void sort(struct student *p,int n) { struct student ad; int i,j; for(i=0;i<n;i++) { for(j=i+1;j<n+1;j++) { if(p[i].sum<p[j].sum) { ad=p[i]; p[i]=p[j]; p[j]=ad; } } } }
更多相关内容 -
6-12 结构体数组按总分排序
2021-01-13 21:33:02有一组学生数据,每个数据中含有三门课成绩,请按成绩总和从高到低对这组数据进行排序。 编写函数calc求出每名学生的总分。 编写函数sort按每名学生的总分从高到低对这组数据进行排序 函数接口定义: void calc...有一组学生数据,每个数据中含有三门课成绩,请按成绩总和从高到低对这组数据进行排序。 编写函数calc求出每名学生的总分。 编写函数sort按每名学生的总分从高到低对这组数据进行排序
函数接口定义:
void calc(struct student *p,int n); void sort(struct student *p,int n);
其中 p 和 n 都是用户传入的参数。 函数calc求出p指针所指的结构体数组中 n 名学生各自的总分。 函数sort对p指针所指的结构体数组的学生数据按总分降序排序。
裁判测试程序样例:
#include <stdio.h> struct student { int num; char name[15]; float score[3]; float sum; }; void calc(struct student *p,int n); void sort(struct student *p,int n); int main() { struct student stu[5]; int i,j; float f; for(i=0;i<5;i++) { scanf("%d%s",&stu[i].num,stu[i].name); for(j=0;j<3;j++) { scanf("%f",&f); stu[i].score[j]=f; } } calc(stu,5); sort(stu,5); for(i=0;i<5;i++) { printf("%5d%15s",stu[i].num,stu[i].name); printf(" %.1f %.1f %.1f %.1f\n",stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].sum); } return 0; /* 请在这里填写答案 */
输入样例:
1 zhang 89 87 85 2 liu 92 98 96 3 li 74 71 72 4 xion 95 98 99 5 liu 99 100 100
输出样例:
5 liu 99.0 100.0 100.0 299.0 4 xion 95.0 98.0 99.0 292.0 2 liu 92.0 98.0 96.0 286.0 1 zhang 89.0 87.0 85.0 261.0 3 li 74.0 71.0 72.0 217.0
示例:
void calc(struct student *p,int n) { for(int i=0; i<n; i++) { p[i].sum = p[i].score[0] + p[i].score[1] + p[i].score[2]; } } void sort(struct student *p,int n) { struct student a; for(int i=0; i<n; i++) { for(int j = i; j<n; j++) { if(p[i].sum < p[j].sum) { a = p[i]; p[i] = p[j]; p[j] = a; } } } }
-
使用结构体数组排序
2020-11-05 22:06:48案例描述:使用一个学生结构体,将班级中的学生按照成绩来使用冒泡排序法排序输出 [ 分析:步骤 ] 1、创建一个学生结构体 struct Student //学生结构体 { int age; int score; string name; }; 2、创建一个学生...案例描述:使用一个学生结构体,将班级中的学生按照成绩来使用冒泡排序法排序输出
[ 分析:步骤 ]
1、创建一个学生结构体struct Student //学生结构体 { int age; int score; string name; };
2、创建一个学生结构体数组,并赋值
Student sdu[10] = { //学生的信息 {18,95,"Student_A"}, {18,65,"Student_B"}, {18,78,"Student_C"}, {18,62,"Student_D"}, {18,76,"Student_E"}, {18,83,"Student_F"}, {18,90,"Student_G"}, {18,80,"Student_H"}, {18,91,"Student_I"}, {18,95,"Student_J"} };
3、以学生的分数进行排序
void bubblesore(Student sdu[10],int len) //冒泡排序法 { for (int i = 0; i < len; i++) { for (int j = 0; j < len - i - 1; j++) { if (sdu[j].score < sdu[j + 1].score) { //分数交换 int temp_score= sdu[j].score; sdu[j].score = sdu[j + 1].score; sdu[j + 1].score = temp_score; //年龄交换 int temp_age = sdu[j].age; sdu[j].age = sdu[j+1].age; sdu[j + 1].age = temp_age; //名字交换 string temp_name = sdu[j].name; sdu[j].name = sdu[j + 1].name; sdu[j + 1].name = temp_name; } } } }
4、打印排序之后的学生名次
void printfInfo(Student *sdu, int len)//输出结构体信息 { for (int i = 0; i < len; i++) { cout << "第" << i + 1 << "名是:" << sdu[i].name << "成绩为: " << sdu[i].score << endl; } }
结果:
在冒泡排序法中可以使用一个学生的结果体直接进行一个数据交换Student temp = sdu[j]; sdu[j] = sdu[j + 1]; sdu[j + 1] = temp;
-
结构体数组的排序(学生成绩问题)
2019-11-23 12:40:05分析:本题的突破点在冒泡法对结构体数组排序,其实同整型数组排序一样。首先看普通的冒泡 排序: 代码如下: #include <stdio.h> #define N 5 struct Student{ char name[10]; long stuNo; ...需求:有一个学生结构体变量,有姓名,学号,成绩。让用户输出N个学成的信息,用冒泡法对这n个学生的成绩排序后输出。
分析:本题的突破点在冒泡法对结构体数组排序,其实同整型数组排序一样。首先看普通的冒泡 排序:
代码如下:
#include <stdio.h> #define N 5 struct Student{ char name[10]; long stuNo; int grade; }; void DubbleSort(struct Student stu[]){ for(int i = 0; i < N-1 ; i++){ for(int j = 0; j < N-i-1 ;j++){ if(stu[j].grade<stu[j+1].grade){ //比较成绩的大小 struct Student temp = stu[j+1]; //成绩大的交换所在的数组元素 stu[j+1] = stu[j]; stu[j] = temp; } } } } int main(){ struct Student stu[N]; int i; for(i = 0 ;i<N;i++){ printf("请输入第%d个学生的信息:\n",i+1); scanf("%s%ld%d",stu[i].name,&stu[i].stuNo,&stu[i].grade); } DubbleSort(stu); for(i = 0;i<N;i++){ printf("排名第%d学生的名字:%s 学号:%ld 成绩:%d\n",i+1,stu[i].name,stu[i].stuNo,stu[i].grade); } }
运行效果:
-
#C语言:结构体数组使用(输入n个学生信息,并根据成绩高低排序)
2021-12-03 20:01:36include<stdio.h> include<stdlib.h> include<assert.h> include<malloc.h> 1.第一种定义结构体的方法 struct student ...2.第二种定义结构体的方法 typedef struct student { ch... -
结构体数组排序 (学生信息 按成绩排序 )
2017-08-26 21:27:07name:学生信息结构体 按总分排序 (降序) */ #include int main() { int i,j; typedef struct{ int grade; int age; char name[10];/*其他信息就不列举了*/ }Student; Student temp; Student student[3]={/*... -
【C语言】结构体数组:学生成绩排序
2021-11-20 12:02:38【C语言】结构体数组:学生成绩排序 #include<stdio.h> struct student { double xuehao; char xingming[100]; int nian,yue,ri; }s1[100]; void paixu(struct student s1[],int n) { struct student... -
6-2 综合成绩排名-结构体二 (100 分)
2021-02-04 22:01:496-2 综合成绩排名-结构体二 (100 分) 众所周知,计算机院要对申请转入计算机大类的学生进行考核,考核方式包括机试和面试。学生综合成绩采取百分制,其中50%由机试成绩核算,另50%由学生已获得的加权成绩核算。综合... -
PTA 结构体数组按总分排序
2022-05-08 23:50:30有一组学生数据,每个数据中含有三门课成绩,请按成绩总和从高到低对这组数据进行排序。 编写函数calc求出每名学生的总分。 编写函数sort按每名学生的总分从高到低对这组数据进行排序 函数接口定义: void ... -
根据结构体数组中某一数据项对结构体数组排序
2018-08-17 17:46:06/* ...*All rights reserved. ...*问题描述:输入结构体数组,并根据结构体中的某一数据项对整个结构体数组进行排序 *输入描述:; *程序输出: */ #include<stdio.h> #include<string.h> struc... -
C语言--结构体数组--n个学生信息,按照成绩高低输出各个学生信息
2020-03-16 21:26:57代码区 #include<stdio.h> struct Student { int num; char name[100]; float score;...}stu[2]={{140,"jack",70},{118,"jennry",100}};... //因为只有同类型的结构体变量次啊能互换 const int n=2; in... -
学生成绩排名 (用结构体数组按成绩排名)
2022-02-23 20:26:39成绩排名用结构体数组解决,结果输出第一列是名次,注意并列情况;第二列是学号,第三列是成绩。 -
C程序设计--结构体--使用结构体数组
2020-05-02 23:32:21} 输出结果: li yang he he li yang zhu li he yang zhang the result is: li:3 yang:3 he:3 Press any key to continue 将几个学生的成绩按照高低顺序输出 //按照成绩高低输出学生信息 #include struct Person{ ... -
结构体—根据学生的成绩从高到低排序
2017-07-09 08:12:57从终端输入每个人的信息,然后按照分数从高到低排序,将信息打印到终端上。#include typedef struct //一个结构体代表一个人 { char name[15]; int id; int age; int score; }stu; void input_ -
C语言简单实现学生成绩排序(结构体,数组)
2021-12-12 21:57:52#include <stdio.h>... printf("学生成绩排序\n"); struct student { char name[10]; int id; int score; int stuspace; }; struct student students[10]; struct student... -
PTA:6-3 成绩单排序
2021-12-16 10:10:37定义函数处理结构体数组,按成绩从高到低降序排列。 函数接口定义: struct stu { int num; char name[20]; int score; }; void fun ( struct stu *p, int n ); p是结构体数组的起始地址,n是结构体单元个... -
c语言用结构体对学生成绩进行排序(不懂啊)
2021-12-29 23:19:46建立结构数组,从键盘录入10个同学的信息,然后对这10个同学按成绩从高到低的顺序排序,然后在屏幕上输出排序后的所有学生记录并写入文件中。假设本问题中,学生成绩一定为[0,100]之间的正整数。要求使用选择排序... -
C语言刷题33:用结构体数组存储学生学号,成绩,姓名,按照分数大小顺序排序,并输出所有成绩
2020-01-19 18:19:31小憨总结:结构体按照某一项数据的大小进行排序时,需要交换的是结构体,而不是某一项 #include <stdio.h> struct Student { int num; char name[20]; float score; }; int main() { struct Student stu[5... -
一个结构体数组中插入一组数据,原结构体数组中的数据按平均成绩由大到小排序,现在插入一个之后还是这样...
2020-04-09 23:38:29//基本思想是:先从文件中读取那20个数放入字符数组中,然后再对字符数组进行操作 #include<stdio.h> #include<stdlib.h> #include<string.h> #define M 5 struct ST{ cha... -
学生的记录由姓名和成绩组成,在主函数中用结构体数组存储4名学生的数据,请编写函数按分数的高低降序排列...
2022-05-27 15:31:17学生的记录由姓名和成绩组成,在主函数中循环输入4名学生的数据并用结构体数组存储,请编写函数StructSort,按分数的高低降序排列输出学生的姓名和分数。 要求: 使用结构体: struct Student { char name[10... -
结构体:按成绩排序(sort排序 || 结构体内嵌比较函数)
2018-11-22 19:47:58定义一个学生结构体,含学号(一维字符数组)、姓名、成绩(整型)。从键盘输入n(n&amp;amp;amp;amp;lt;20),再输入n个学生的信息,按学生成绩从小到大顺序输出学生信息。 Input 输入一个n,接着输入n个... -
C语言利用结构体数组实现学生成绩管理系统
2021-05-19 12:19:19用结构体数组作为函数参数,编程实现如下菜单驱动的学生成绩管理系统。(1) 录入每个学生的学号、姓名和各科考试成绩。(2) 计算每门课程的总分和平均分。(3) 计算每个学生的总分和平均分。(4) 按每个学生的总... -
结构体数组存放学生信息并排序输出
2013-04-10 18:40:26使用选择法进行排序,代码: #include using namespace std; struct Students { int num; char name[20]; char sex; int score; }; int main() { struct Students su[5 -
结构体对成绩进行排名
2021-11-19 20:13:31期末考试结束后要对同学们的考试成绩进行排序,张老师已经计算好了每一位同学的总成绩。请编写程序,输入每位同学的总成绩并输出一个按成绩高低排列的名次表。 该问题中,在成绩排序的同时,需要相应的学号和姓名... -
【C语言】用结构体数组完成:有5个学生(包括学号,姓名,成绩),要求按照成绩高低输出学生信息
2021-05-21 05:38:09//用结构体数组完成:有5个学生(包括学号,姓名,成绩),要求按照成绩高低输出学生信息#include struct Stu{int num;char name[20];int score;};int main(){int i,j;struct Stu student[5]={{317,"han",89},{318,"hu... -
(第13列)C语言:结构体数组------学生成绩排名
2022-01-22 15:34:20题目:有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的成绩。 要实现下面的功能: 话不多说!直接代码见真知! 第一步:定义和声明 //声明结构体类型 struct student { ... -
用结构体数组存储学生信息,每个学生有姓名、学号、年龄和成绩。输入N(10)名学生信息,按成绩从高低
2021-05-19 15:49:11满意答案dkfjike5h92019.06.06采纳率:46%等级:12已帮助:6616人注意输入数据时的形式。#includestruct person{int xuehao;char name[20];char sex;...printf("一共有多少学生;");scanf("%d",&am... -
使用qsort对struct指针数组进行排序
2021-05-21 13:15:10尝试在这个结构数组上使用qsort,我得到了奇怪的结果....我从文件构造一个access_data指针数组,使它们按到达时间排序,但我需要稍后按扇区对它们进行排序,所以我有以下内容:int compare_data(const void* ... -
OJ常规题------利用结构体解决学生成绩排序的问题
2018-07-16 23:04:06这些信息,我们将每个学生的这些信息组合起来,利用Struct声明一个结构体,将它的信息作为其成员变量。 然后我们根据它的排序要求编写进行计较规则的方法,取名cmp()。再调用系统的sort函数即可(需要加声明:#... -
(C语言)利用结构体数组制作学生成绩管理系统
2017-07-05 13:11:51用结构体数组作为函数参数,编程实现如下菜单驱动的学生成绩管理系统。 (1) 录入每个学生的学号、姓名和各科考试成绩。 (2) 计算每门课程的总分和平均分。 (3) 计算每个学生的总分和平均分。
收藏数
993
精华内容
397