数据结构上机题目3--学生信息排序
来源:互联网 发布:软件功能需求确认书 编辑:程序博客网 时间:2024/05/17 13:10
/************************************************************************** author:crazy_石头* algorithm:bubble_sort* date:2013/10/20* 程序功能:对学生信息进行排序**************************************************************************/#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;const int maxn=5;struct Stu{ int num; char name[maxn]; char gendar[maxn]; int grade1; int grade2; int grade3; int aver;}stu[maxn];inline void debug(){ puts("Oh,god,where on earth is wrong?");}inline void bubble_sort1(Stu A[],int n){ for(int i=0;i<n;i++) { for(int j=0;j<n-1-i;j++) { if(A[j].num>A[j+1].num) { Stu tmp=A[j+1]; A[j+1]=A[j]; A[j]=tmp; } } }}inline void bubble_sort2(Stu A[],int n){ for(int i=0;i<n;i++) { for(int j=0;j<n-1-i;j++) { if(strcmp(A[j].name,A[j+1].name)>0) { Stu tmp=A[j+1]; A[j+1]=A[j]; A[j]=tmp; } } }}inline void bubble_sort3(Stu A[],int n){ for(int i=0;i<n;i++) A[i].aver=(A[i].grade1+A[i].grade2+A[i].grade3)/3; for(int i=0;i<n;i++) { for(int j=0;j<n-1-i;j++) { if(A[j].aver>A[j+1].aver) { Stu tmp=A[j+1]; A[j+1]=A[j]; A[j]=tmp; } } }}inline void solve(Stu A[],int n){ float res1=0,res2=0,res3=0; for(int i=0;i<n;i++) { res1+=A[i].grade1; } printf("这%d名同学第一门课程的平均成绩是:%.2lf\n",n,res1/n); for(int i=0;i<n;i++) { res2+=A[i].grade2; } printf("这%d名同学第二门课程的平均成绩是:%.2lf\n",n,res2/n); for(int i=0;i<n;i++) { res3+=A[i].grade3; } printf("这%d名同学第三门课程的平均成绩是:%.2lf\n",n,res3/n);}int main(){ freopen("student.txt","r",stdin); for(int i=0;i<5;i++) scanf("%d%s%s%d%d%d",&stu[i].num,stu[i].name,stu[i].gendar,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3); printf("按学号排序结果如下:\n"); bubble_sort1(stu,maxn); for(int i=0;i<5;i++) printf("%d\t%s\t%s\t%3d%3d%3d\n",stu[i].num,stu[i].name,stu[i].gendar,stu[i].grade1,stu[i].grade2,stu[i].grade3); printf("按姓名排序结果如下:\n"); bubble_sort2(stu,maxn); for(int i=0;i<5;i++) printf("%d\t%s\t%s\t%3d%3d%3d\n",stu[i].num,stu[i].name,stu[i].gendar,stu[i].grade1,stu[i].grade2,stu[i].grade3); printf("按平均成绩排序结果如下:\n"); bubble_sort3(stu,maxn); for(int i=0;i<5;i++) printf("%d\t%s\t%s\t%3d%3d%3d%3d\n",stu[i].num,stu[i].name,stu[i].gendar,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[i].aver); solve(stu,maxn); return 0;}
- 数据结构上机题目3--学生信息排序
- 数据结构上机题目1--基本排序
- 第十六周Oj题目学生信息排序
- 数据结构上机题目--搜索
- 数据结构上机题目--MST
- 数据结构上机题目--dijkstra
- 数据结构上机题目
- 数据结构二分排序之学生信息查询简单系统
- 学生信息排序
- 学生信息排序
- 学生信息排序
- 学生信息排序
- 题目18:查找学生信息
- 题目1069:查找学生信息
- 题目1069:查找学生信息
- 题目1069:查找学生信息
- 题目1069:查找学生信息
- 题目1069:查找学生信息
- 科学哲学笔记
- list C++操作一览
- WebLogic NodeManager 配置文件nodemanager.properties
- 数据结构上机题目2--快排
- 为什么在SVN里要使用tags/branchs/trunk
- 数据结构上机题目3--学生信息排序
- Macports install
- 查询、更改 DB2 序列Sequence
- ORACLE DELETE & TRUNCATE 区别
- Oracle Linux 6.1 安装Oracle 10g ORA-27125:unable to create shared memory segment 解决方法
- Java异常处理机制
- override(C# 参考)
- (android 功能代码)Android网络请求库——android-async-http .
- 二值化轮廓图像轮廓点坐标顺时针获取matlab程序