C语言习题,刚学不久遇到这种练习,对函数掌握不够,求各位带带
3条回答 默认 最新
- hello_world&& 2022-11-25 14:30关注
先定义一个结构体类型student,包含成员学号num,姓名name,成绩score。在排序部分可使用冒泡排序,最大值部分可用“擂台法”找到最大值,也可用排序后的结果来找最大值,本代码采用第一种方法。
#include<stdio.h> struct student{ int num; char name[20]; float score; }; void input(int n,struct student stu[]) { int i; for(i=0;i<n;i++) { printf("请输入第%d个同学的学号,姓名,成绩\n",i+1); scanf("%d %s %f",&stu[i].num,stu[i].name,&stu[i].score); } } void sort(int n,struct student stu[]) { struct student t; int i,j; for(i=0;i<n-1;i++)//n个数的数列总共扫描n-1次 { for(j=0;j<n-i-1;j++)//每一趟扫描到stu[n-i-2]与stu[n-i-1]比较为止结束 { if(stu[j].score<stu[j+1].score)//后一位数比前一位数大的话,就交换两个数的位置(升序) { t=stu[j+1]; stu[j+1]=stu[j]; stu[j]=t; } } } printf("成绩由高到低为:"); for(i=0;i<n;i++) printf("%.2f ",stu[i].score); printf("\n"); } void max(int n,struct student stu[]) { struct student max1; max1=stu[0]; int i; for(i=0;i<n;i++) { if(stu[i].score>max1.score) max1=stu[i]; } printf("最高分学生信息: "); printf(" 学号:%d 姓名:%s 成绩:%f.2",max1.num,max1.name,max1.score); } int main() { struct student stu[5]; input(5,stu); sort(5,stu); max(5,stu); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 爬虫爬取网站的一些信息
- ¥15 关于vue2中methods使用call修改this指向的问题
- ¥15 idea自动补全键位冲突
- ¥15 请教一下写代码,代码好难
- ¥15 iis10中如何阻止别人网站重定向到我的网站
- ¥15 滑块验证码移动速度不一致问题
- ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
- ¥15 麒麟V10桌面版SP1如何配置bonding
- ¥15 Marscode IDE 如何预览新建的 HTML 文件
- ¥15 K8S部署二进制集群过程中calico一直报错