中易网

C语言编程用键盘输入所有学生成绩,并显示1全班平均成绩2谁的了最高成绩,谁的了最低成绩,显示学号,学号

答案:2  悬赏:60  
解决时间 2021-12-29 18:54
用数组的知识3优良中及格和不及格的人数4用升序或降序排列学生成绩,并显示学生学号。谢谢了
最佳答案
#include
#define M 50//自定义学生人数
struct student
{
char name[10];
char num[10];
float score;
}st[M];

void
average()
{
float sum=0,ave;
int i;
for(i=0;i sum+=st[i].score;
ave=sum/M;
printf("全班平均成绩是:");
printf("%5.2f\n",ave);
}

void
top_student()
{
int i,t=0;
float max;
max=st[0].score;
for(i=1;i if(st[i].score>max){
max=st[i].score海抚奋幌莪呵烽童甫阔;
t=i;
}
printf("%s得了最高成绩,学号是:%s\n\n",st[t].name,st[t].num);
}

void
last_student()
{
int i,t=0;
float min;
min=st[0].score;
for(i=1;i if(st[i].score min=st[i].score;
t=i;
}
printf("%s得了最低成绩,学号是:%s\n\n",st[t].name,st[t].num);
}

void
rank_student()
{
int i,t1=0,t2=0,t3=0,t4=0,t5=0;
for(i=0;i if(st[i].score>=90)t1++;
else if(st[i].score>=80)t2++;
else if(st[i].score>=70)t3++;
else if(st[i].score>=60)t4++;
else t5++;
}
printf("优秀的人数是:%d\n",t1);
printf("良好的人数是:%d\n",t2);
printf("中等的人数是:%d\n",t3);
printf("及格的人数是:%d\n",t4);
printf("不及格的人数是:%d\n",t5);
}


void
ascend_student()
{
int i,j,k;
float t;
printf("\n学生成绩由高到底依次是:\n");
for(i=0;i {
k=i;
for(j=i+1;j if(st[i].score t=st[i].score;
st[i].score=st[j].score;
st[j].score=t;
k=j;
}
printf("学号:%s,成绩:%5.2f\n",st[k].num,st[i].score);
}
}

int
main(void)
{
int i;
printf("请输入学生姓名:\n");
for(i=0;i scanf("%s",st[i].name);
printf("请输入学生的学号:\n");
for(i=0;i scanf("%s",&st[i].num);
printf("请输入学生的成绩:\n");
for(i=0;i scanf("%f",&st[i].score);
average();
top_student();
last_student();
rank_student();
ascend_student();
return 0;
}
全部回答
#include<stdio.h> #define n 50 typedef struct { int number; char name[20]; int score; }stu; void average(stu *students) { int i,s=0,j; for(i=0;i<n;i++) s+=students[i].score; j=s/n; printf("the average score of this class is %d\n",j); } void highest(stu *students) { stu a; int i; a=students[0]; for(i=0;i<n;i++) if(a.score<students[i].score) a=students[i]; printf("the highest score is:%d %s %d\n",a.number,a.name,a.score); } void lowest(stu *students) { stu a; int i; a=students[0]; for(i=0;i<n;i++) if(a.score>students[i].score) a=students[i]; printf("the lowest score is:%d %s %d\n",a.number,a.name,a.score); } void fun(stu *students) { int j,n=1; stu a,t; while(n<=n) { a=students[n-1]; for(j=n-1;j<n;j++) if(a.score<students[j].score) { t=a; a=students[j]; students[j]=t; } printf("the %dth score is:%d,%s,%d\n",n,a.number,a.name,a.score); n++; } } void main() { int i; stu students[n]; stu *p; p=students; for(i=0;i<n;i++) scanf("%d %s %d",&students[i].number,students[i].name,&students[i].score); average(p); highest(p); lowest(p); fun(p); } 首先说明一下,应该把第二行n后的值修改成该班的人数,运行后依次输入各个学生的学号,姓名(姓名中间不能含有空格),成绩,分别用空格隔开。 由于我是一个c语言初学者,所以有错误是在所难免的,还望指教。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如果一个男生送给女生两个杯子是什么含义
酒緡的意思是什么?酒緡的释义是什么啊?
通信网的意思是什么啊?请解释下!
退卒的意思是什么?退卒的释义是什么啊?
PETS5口试分两天考,两天的考题是不是一样?
y=sinx+cosx=根号二sin(x+45度怎么解?)
扬州头桥镇在哪呢?坐什么车子能到
賭棋的意思是什么?賭棋的释义是什么啊?
蓬飘的意思是什么啊?请解释下!
为什么我的CF文件缺失,重新下载还不能玩?怎
乳房下垂矫正术前注意什么问题
队名:牛山队 求朗朗上口、好听、押韵的篮球
種人的意思是什么?種人的释义是什么啊?
吉利汽车回访.用什么技术提高对本4S店的满意
装表的意思是什么?装表的释义是什么啊?
推荐资讯
牙齿不好看,想矫正,能用ZEQ牙齿矫正精油吗
上妆的意思是什么?上妆的释义是什么啊?
手机一直重启怎么回事
庐帐的意思是什么?庐帐的释义是什么啊?
树懒的意思是什么啊?请解释下!
有一定的plc理论知道,可以去做那些工作??
常語的意思是什么?常語的释义是什么啊?
百乘之家的意思是什么?百乘之家的释义是什么
乌鲁木齐油运司归在沙区还是 新市区?
爱你,我真的爱你,自从第一眼到现在 是什么歌
上海外企普通白领工资是多少?中级经理的呢?
沽河司法所怎么去啊,有事要去办理
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?