求高手吧帮忙解决下C++的一个题~!谢谢~!简单点的~! 20

编写程序处理10个学生的信息,每个学生的信息包括:学号、姓名、三门成绩。要求从键盘输入学生的数据用一个函数实现,输出成绩表(包括每个学生的学号、姓名、三门成绩及平均分数)... 编写程序处理10个学生的信息,每个学生的信息包括:学号、姓名、三门成绩。要求从键盘输入学生的数据用一个函数实现,输出成绩表(包括每个学生的学号、姓名、三门成绩及平均分数)用一个函数,再用一个函数输出平均分在前3名的学生姓名及平均分 展开
 我来答
百度网友71b810fe7
2010-05-12 · TA获得超过509个赞
知道小有建树答主
回答量:510
采纳率:100%
帮助的人:396万
展开全部
完成,按你的要求来的。
#include "iostream.h"
#define N 10
/////////////////////////////
struct STUDENT ////////////学生结构体
{
char sn[20];
char name[20];
float sc[3];
float ave;
}student[10];
////////////////////////////
void student_input()//输入模块
{
for(int i=0;i<N;i++)
{
cout<<"请输入第"<<i+1<<"个学生的信息"<<endl;
cout<<"姓名:";
cin>>student[i].name;
cout<<"学号:";
cin>>student[i].sn;
float sum=0;
for(int j=0;j<3;j++)
{
cout<<"第"<<j+1<<"门成绩:";
cin>>student[i].sc[j];
sum=sum+student[i].sc[j];
}
student[i].ave=sum/3;
cout<<"均分:"<<student[i].ave<<endl;
}
cout<<"输入完成!"<<endl;
}
/////////////////////////////////////////

void student_sort()///排序模块
{
int temp[3];
int max=0;
for(int i=0;i<N;i++)
{
if(student[i].ave>max)
{
temp[0]=i;
max=student[i].ave;
}
}
max=0;
for(int j=0;j<N;j++)
{
if(student[j].ave>max&&j!=temp[0])
{
temp[1]=j;
max=student[j].ave;
}
}
max=0;
for(int k=0;k<N;k++)
{
if(student[k].ave>max&&(k!=temp[0])&&k!=temp[1])
{
temp[2]=k;
max=student[k].ave;
}
}
cout<<"前三名的学生!"<<endl;
for(int l=0;l<3;l++)
{
cout<<"姓名:"<<student[temp[l]].name<<endl;
cout<<"学号"<<student[temp[l]].sn<<endl;
cout<<"均分"<<student[temp[l]].ave<<endl;
}

}
/////////////////////////////////////
void main()//主函数
{
student_input();
student_sort();
}
上海莘默
2024-04-12 广告
莱默尔{e+l}是自动化领域的一股创新力量,专注于提供前沿的技术解决方案。我们深知,在快速发展的工业4.0时代,企业需要高效、精准的设备来提升生产效率和产品质量。莱默尔{e+l}正是致力于满足这一需求,通过不断优化产品性能、提升服务质量,助... 点击进入详情页
本回答由上海莘默提供
sqc1986
2010-05-12 · TA获得超过222个赞
知道小有建树答主
回答量:247
采纳率:0%
帮助的人:297万
展开全部
#include<stdio.h>
#include<string.h>
main()
{
int a[100]={0},b[100][6]={0},i,j,m=0,t,k,u;
char c[100][20],p[1][30];
printf("请输入学生个数:");
scanf("%d",&u);
for(i=1;i<=u;i++)
a[i]=i;

printf("请输入%d名学生的成绩:\n",u);
for(i=0;i<=u-1;i++)
{
printf("请输入学号为%d的名字:",m+1);
m++;
scanf("%s",&c[i]);
printf("请输入这名学生的四门成绩:\n");
for(j=0;j<=3;j++)
{
scanf("%d",&b[i][j]);
b[i][5]+=b[i][j];

}
b[i][4]=b[i][5]/4;
}
for(i=0;i<=u-1;i++)
for(j=i+1;j<=u-1;j++)
if(b[i][5]<b[j][5])
{

for(k=0;k<=5;k++)
{
t=b[i][k];
b[i][k]=b[j][k];
b[j][k]=t;
}
t=a[i];a[i]=a[j];a[j]=t;
strcpy(p[0],c[i]);strcpy(c[i],c[j]);strcpy(c[j],p[0]);

}
printf("*******************************************************\n");
printf("*** 班级成绩排名 ***\n");
printf("*******************************************************\n\n");

printf("名次 学号 姓名 语文 数学 英语 C语言 平均分 总分\n");
m=0;
for(i=0;i<=2;i++)
{
printf("第%2d名",m+1);
m++;

printf("%3d",a[i]);
printf("%10s",c[i]);
for(j=0;j<=5;j++)
{
printf("%6d",b[i][j]);

}
printf("\n");
}

}

和你的要求好像还差点! 你参考一下吧! 需要改的话在修改一下!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式