使用结构体数组,将学生的数据按成绩从高到低排序显示到屏幕上
将学生中不及格学生的姓名显示出来
写一个函数,获取成绩低于平均分的学生记录并返回低于平均分的学生人数#include<stdio.h>#define N 3struct student{char sno[20];char name[20];int score[20];double avg;}s[N];void input(){int i,j;for(i=0;i<N;i++){printf("输入学号:");scanf("%s",s[i].sno);printf("输入姓名:");scanf("%s",s[i].name);printf("输入功课成绩:");scanf("%d",s[i].score);printf("\n");}}int sortl(int n){ int i,j; double sum=0; n=0;for(i=0;i<N;i++)//求平均分{sum=sum+s[i].score[i]; s[i].avg=sum/N;} for(i=0;i<N;i++)//排序(依据平均分)if(s[i].avg<s[i+1].avg){struct student t; t=s[i];s[i]=s[i+1];s[i+1]=t;}printf("不及格:\n");//找不合格for(i=0;i<N;i++)if(s[i].score[i]<60){ n=n+1;printf("%s\t",s[i].name);printf("\n");break;} return n;//返回不及格的人的个数}void output(){int i,j;printf("排序后(升序):\n");printf("学号\t 姓名\t 成绩组成 平均\n");for(i=0;i<N;i++){printf("%s\t%s\t%d\t",s[i].sno,s[i].name,s[i].score[i]);printf("%.2lf",s[i].avg);printf("\n");}}int main(){int m,k;input();k=sortl(m);output();printf("不及格人数%d\n",k);return 0;}我写的有好多问题,帮忙修改也行,最好能整理一下发代码
1 回答
- 1 回答
- 2 关注
- 15813 浏览
添加回答
举报
0/150
提交
取消