有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总成绩和平均成绩,从键盘 - 爱问答

(爱问答)

有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总成绩和平均成绩,从键盘

这个代码是我之前写的,绝对符合要求,甚至能自定义学生数量,并按平均分从大到小排名

#include<stdio.h>

#include<windows.h>

int main()

{

system("cls");

//声明变量及要求用户输入学生数量

int a;

struct student

{

char e[20];//姓名

int b;//三科成绩

int c;

int d;

double g;//平均分

}f[101];

scanf("%d",&a);//输入学生数量

system("cls");

 

for(int i=0;i<a;i++)//进入循环 循环次数为学生数量

{

scanf("%s %2d %2d %2d",&f[i].e,&f[i].b,&f[i].c,&f[i].d);//输入学生姓名及成绩

f[i].g=(f[i].b+f[i].c+f[i].d)/3;//求出学生成绩的平均分

}

 

//根据成绩平均值从大到小排序

for(int j=a-1;j>0;j--)

{

for(int i=0;i<j;i++)

{

if(f[i].g<f[i+1].g)//如果前一个学生平均分比后一个低,则交换两名学生的位置,让高的靠前

{

auto t=f[i];

f[i]=f[i+1];

f[i+1]=t;

}

}

}

system("cls");

printf("********************成绩表****************** ");

printf("      姓名  数学 语文 英语 平均分 总分 排名 ");

//按照排序后的数组,顺序输出

for(int i=0;i<a;i++)

{

printf("%10s   %2d   %2d   %2d   %3d   %2.1f      %d ",f[i].e,f[i].b,f[i].c,f[i].d,(f[i].b+f[i].c+f[i].d),f[i].g,i+1);//分别输出 名字、三科成绩、平均分、排名

}

}


下一篇:2017年湖口县小学学籍号是怎么样组成的?

上一篇:郑州市工程创优有什么奖

热门标签:
英语 谜语 作文 数学 公式 语文 物理 化学 工艺 java c语言 实验 方程 金属 分子 数据库 硫酸 酒精 运算 石油 vc 世界大战 php 化合物 mysql
最新更新:
电学的一个小问题 为什么打点计时器只能粗略瞬时速度 lookdownupon用法 中专都考不上大学有必要复读一年吗? 如图,已知∠B=∠DEF,AB=DE,请添加一个条件使△ABC≌△DEF,则需添加的条件是__________. 求曲线y=2x^2和直线y=2的所围图形的面积 夜上受降城闻笛是哪句 这个怎么填数字? 小明家下五层楼是5楼,那么小明家上五层楼是几层楼? 填空题,这个题目是怎么算的呢…… 22335577()143中括号里填什么数字。 懂得人帮我看一下这个英文是啥意思??? 最小的物质单位是什么 怎么估算根号52000000 about的重读字母是哪里