急!请教c语言编程问题,有时间的帮下,不胜感激(VC++6.0环境下)好的给高分

题目及要求:输入二个班各5名学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并分班按学生成绩优劣排序,最后打印一张各班... 题目及要求:

输入二个班各5名学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并分班按学生成绩优劣排序,最后打印一张各班按高分到低分名次排序的成绩单。要求:

(1) 排序用一个函数实现。

(2) 打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。

(3) 将如格式为学号姓名.c的程序文件于2010年6月18日之前上传到网络磁盘上。
额,题目第三个要求可以无视
展开
 我来答
fivestar502
2010-06-11 · TA获得超过156个赞
知道小有建树答主
回答量:74
采纳率:0%
帮助的人:93.8万
展开全部
C++完成的,不知可行

#include<iostream.h>
#include<iomanip.h> //setw(n):设域宽为n个字符
struct student
{
long sno;
double math;
double english;
double computer;
double Sum;
double Aver;
};
void fun(student* p) //排序函数,实现由总分高到低排序
{
int i,j;
student temp;
for(i=0;i<5;i++)
{
p[i].Sum=p[i].math+p[i].english+p[i].computer; //计算总分
p[i].Aver=p[i].Sum/3; //计算平均分
}
for(i=0;i<5;i++) //排序
for(j=i+1;j<5;j++)
if(p[i].Sum<p[j].Sum)
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
void main()
{
student a[5],b[5];
int i;
for(i=0;i<5;i++)
{
cout<<"请输入1班第"<<i+1<<"个学生学号及其三科成绩(数学、英语、计算机基础):";
cin>>a[i].sno>>a[i].math>>a[i].english>>a[i].computer;
}
for(i=0;i<5;i++)
{
cout<<"请输入2班第"<<i+1<<"个学生学号及其三科成绩(数学、英语、计算机基础):";
cin>>b[i].sno>>b[i].math>>b[i].english>>b[i].computer;
}
fun(a);
fun(b);
cout<<"1班成绩单:"<<endl;
cout<<"序号"<<" 学号"<<" 数学"<<" 英语"<<" 计算机基础"<<" 总分"<<" 平均分"<<endl;
for(i=0;i<5;i++)
cout<<setw(4)<<i+1<<setw(8)<<a[i].sno<<setw(8)<<a[i].math<<setw(8)<<a[i].english
<<setw(14)<<a[i].computer<<setw(10)<<a[i].Sum<<setw(10)<<a[i].Aver<<endl;
cout<<"2班成绩单:"<<endl;
cout<<"序号"<<" 学号"<<" 数学"<<" 英语"<<" 计算机基础"<<" 总分"<<" 平均分"<<endl;
for(i=0;i<5;i++)
cout<<setw(4)<<i+1<<setw(8)<<b[i].sno<<setw(8)<<b[i].math<<setw(8)
<<b[i].english<<setw(14)<<b[i].computer<<setw(10)<<b[i].Sum<<setw(10)<<b[i].Aver<<endl;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式