C语言编程用键盘输入所有学生成绩,并显示1全班平均成绩2谁的了最高成绩,谁的了最低成绩,显示学号,学号
答案:2 悬赏:60
解决时间 2021-12-29 18:54
- 提问者网友:泪姬迷茫
- 2021-12-29 00:23
用数组的知识3优良中及格和不及格的人数4用升序或降序排列学生成绩,并显示学生学号。谢谢了
最佳答案
- 二级知识专家网友:寂寞的炫耀
- 2021-12-29 00:54
#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;
}
#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
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
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
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
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
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
printf("请输入学生的学号:\n");
for(i=0;i
printf("请输入学生的成绩:\n");
for(i=0;i
average();
top_student();
last_student();
rank_student();
ascend_student();
return 0;
}
全部回答
- 1楼网友:陪衬角色
- 2021-12-29 01:35
#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语言初学者,所以有错误是在所难免的,还望指教。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯