设计一个统计班级学生成绩的c语言程序

统计一个班(最多35人)的学生成绩,要求能实现如下三个功能:(1)由键盘输入每个学生的学号和四门课程的成绩(2)计算每个学生的平均成绩和总成绩(3)按总成绩从高到低排名,并按名次输出每个学生的情况,包括:学号,各科成绩,平均成绩,总成绩,排名

仅供参考:

#include "stdio.h"
#define N 35
struct student
{
int num; //学号
char name[8]; //姓名
int nannv; //性别
int chines; //语文成绩
int math; //数学成绩
int English; //英语成绩
int physics; //物理成绩
int sum; //总分
double avr; //平均分
}stu[N];

void input(int n)
{
int i;
for(i=0;i<n;i++)
{
int sum=0;
double avr=0.0;
printf("请输入第%d个学生信息\n",i+1);
printf("请输入学号:");
scanf("%d",&stu[i].num);
printf("请输入姓名:");
scanf("%s",stu[i].name);
printf("请输入性别:");
scanf("%d",&stu[i].nannv);
printf("请输入语文成绩:");
scanf("%d",&stu[i].chines);
printf("请输入数学成绩:");
scanf("%d",&stu[i].math);
printf("请输入英语成绩:");
scanf("%d",&stu[i].English);
printf("请输入物理成绩:");
scanf("%d",&stu[i].physics);
//计算总分和平均分
stu[i].sum = stu[i].chines+stu[i].math+stu[i].English+stu[i].physics;
stu[i].avr = (double)(stu[i].sum*1.0/4);
}
}

void output(int n)
{
int i;
for(i=0;i<n;i++)
{
printf("------------------------------------------------------------------\n");
printf("第%d名:\n",i+1);
printf("学号:%d\t\t姓名:%s\t\t性别:%d\n",stu[i].num,stu[i].name,stu[i].nannv);
printf("语文成绩:%d\t数学成绩:%d\t英语成绩:%d\t物理成绩:%d\n",
stu[i].chines,stu[i].math,stu[i].English,stu[i].physics);
printf("总分:%d\t\t\t平均分:%.2f\n",stu[i].sum,stu[i].avr);
printf("------------------------------------------------------------------\n");
}
}

void sort(int n)
{
int i,j;
struct student st;
//冒泡排序
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(stu[j].sum<stu[j+1].sum)
{
st = stu[j];
stu[j] = stu[j+1];
stu[j+1] = st;
}
}
}
}
void main()
{
int n;
printf("请输入学生人数:");
scanf("%d",&n);
input(n); //输入学生信息
sort(n); //按总成绩排序
printf("排名信息如下:\n");
output(n); //输出学生信息
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-20

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

    学生成绩c语言程序
追问

好吧,谢谢你了

相似回答