结构体综合训练
来源:互联网 发布:软件开发面试题 编辑:程序博客网 时间:2024/05/02 00:26
有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,编写如下函数:
① 输入10个学生的基本信息(Input);
② 求出每个学生的平均分(Average);
③ 求出最高分的学生信息(High_Score);
④ 输出每个学生的信息(Output);
⑤ 按平均分从高到低的顺序排序(Sort)。
参考代码如下:
#include <stdio.h>#include <math.h>struct Student{int num;char name[10];int score[3];float average;};int input(struct Student person[], int n){int i,j,k;for(i=0;i<n;i++){scanf("%d",&person[i].num);getchar();gets(person[i].name);for(j=0;j<3;j++)scanf("%d",&person[i].score[j]);}return 0;}int output(struct Student person[], int n){int i,j,k;printf("=======================\n");for(i=0;i<3;i++){printf("%5d",person[i].num);printf("%10s",person[i].name);for(j=0;j<3;j++)printf("%5d",person[i].score[j]);putchar('\n');}return 0;}int average(struct Student person[], int n){int i,j,k=0;float average,maxaverage=0.;for(i=0;i<3;i++){average=0.0;for(j=0;j<3;j++)average+=person[i].score[j];person[i].average=average/3;printf("%6.2f",person[i].average);if(average/3>maxaverage){maxaverage=average/3;k=i;}}putchar('\n');printf("the best student is %s.\n",person[k].name);return 0;}int sort(struct Student *ps[], int n){int i,j,k;struct Student *temp;for(i=0;i<n;i++){k=i;for(j=i+1;j<n;j++){if(ps[j]->average>ps[k]->average)k=j;}if(k!=i){temp=ps[i];ps[i]=ps[k];ps[k]=temp;}}for(i=0;i<n;i++){printf("%5d %10s %6.2f\n",ps[i]->num,ps[i]->name, ps[i]->average);}return 0;}int main(){struct Student stu[10]; //&stu[0], &stu[1], &stu[2] stu, stu+1, stu+2struct Student *ps[10]; //ps[0], ps[1], ps[2]int i,j,k;input(stu,10);output(stu,10);average(stu,10);for(i=0;i<10;i++)ps[i]=stu+i;sort(ps,10);return 0;}
#include <stdio.h>#define M 3typedef struct stu{int num;char name[10];int score[3];float average;}Student;int input(Student person[],int n);int output(Student person[],int n);int best(Student person[],int n);int sort(Student person[],int n);int main(){int in;Student person[M];while(1){printf("\t1. input\n");printf("\t2. display\n");printf("\t3. find the best\n");printf("\t4. sort\n");printf("\t5. quit\n");printf("\t please select:");scanf("%d",&in);switch(in){case 1: input(person,3); break;case 2: output(person,3); break;case 3: best(person,3); break;case 4: sort(person, 3); break;case 5: return 0;}}return 0;}int input(Student person[],int n){int i,j;float average;for(i=0;i<n;i++){scanf("%d",&person[i].num);getchar();gets(person[i].name);average=0.;for(j=0;j<3;j++){scanf("%d",&person[i].score[j]);average+=person[i].score[j];}person[i].average=average/3;}return 0;}int output(Student person[],int n){int i,j;printf("number\t name\t Chinese\t Math \t English\t average\n");for(i=0;i<n;i++){printf("%8d",person[i].num);printf("%8s",person[i].name);for(j=0;j<3;j++){printf("%8d",person[i].score[j]);}printf("%8.2f\n",person[i].average);}return 0;}int best(Student person[],int n){int i,j;j=0;for(i=1;i<n;i++){if(person[i].average>person[j].average)j=i;}printf("the best student is:\n");i=j;printf("%8d",person[i].num);printf("%8s",person[i].name);for(j=0;j<3;j++){printf("%8d",person[i].score[j]);}printf("%8.2f\n",person[i].average);return 0;}int sort(Student person[],int n){Student *ps[M],*temp;int i,j;for(i=0;i<n;i++)ps[i]=person+i;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if((*(ps+i))->average<(*(*(ps+j))).average)//if (ps[i]->average<ps[j]->average){temp=ps[i];ps[i]=*(ps+j);ps[j]=temp;}}}for(i=0;i<n;i++){printf("%5d%10s%5d%5d%5d%8.2f\n",ps[i]->num, ps[i]->name,ps[i]->score[0],ps[i]->score[1],ps[i]->score[2],ps[i]->average);}return 0;}
0 0
- 结构体综合训练
- 结构体综合运用
- 【好程序员训练营】分支结构综合练习
- java文件综合训练
- java基础 - 综合训练
- Layout组件综合训练
- SQL综合训练
- 函数 指针 结构体的综合应用
- 综合练习(链表、函数、结构体)
- Delphi程序设计综合训练任务书
- 硬件综合训练中期总结
- java基础 - 综合训练二
- SQL之CRUD综合训练
- HHU ACM 综合训练2
- PyQt5+OpenCV+Matplotlib综合训练
- 寒假集训第一天--结构体训练
- YD 督促训练 lunch time(结构体)
- C语言枚举、结构体、共用体综合应用实例
- flex 从DataGrid列表中导出数据为excel表格
- Linux下的scp命令
- javascript常用正则表达式
- 悬浮窗的实现(如360悬浮窗效果)for android
- Android中Java和JavaScript交互
- 结构体综合训练
- Athletics Track - UVa 11646 几何
- oracle查询表最近更改的数据
- 三大UML建模工具Visio、Rational Rose、PowerDesign的区别
- myeclipse中同步svn项目
- uvaoj 10534 Wavio Sequence 最长上升子序列(LIS)
- 利用media属性区分设备
- Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果 for android2
- Sicily 1171. The Game of Efil