C++的题目,急求大神解答,多谢多谢。

假设某班人数最多不超过40人,具体人数由键盘输入,试编程输出该班某门课成绩的最高分及其学号(学号从0开始顺序编号)。... 假设某班人数最多不超过40人,具体人数由键盘输入,试编程输出该班某门课成绩的最高分及其学号(学号从0开始顺序编号)。 展开
 我来答
1099873116
2013-06-04 · TA获得超过381个赞
知道小有建树答主
回答量:508
采纳率:60%
帮助的人:271万
展开全部
O.O 这个没什么技术难度啊。
班上人数有<=40人,那么用动态数组来实现,具体在C++里用new方法来声明一个2维动态数组,这个动态数组用来保存学号和成绩。
例如:
int n;
cout<<"请输入班级人数:"<<endl;
cin>>n;
int *stuent = new int[n][2];//用student[i][0]保存学号,student[i][2]保存成绩
for(int i =0;i<n;i++)
{
cout<<“请输入学号:”<<endl;

cin>>student[i][0];
cout<<"请输入成绩"<<endl;

cin>>student[i][1];
}

至于求最大成绩,那就用比较法了,可以设置一个临时变量保存当前最大值。
例:
int mix[2]; //用mix[0]来保存找到的的学生的学号,mix[1]保存他的成绩
mix[0]= student[0][0];
mix[1] = student[0][1];//先暂且认为第一个成绩最大
for(int i=1;i<n;i++)
{
if(student[i][1]>mix[1])
{
mix[0] = student[i][0];

mix[1] = student[i][1];}//从第二个人的成绩开始逐个比较,如果大于mix中的成绩值,
//就把这个人的学号和成绩保存到mix中
}

cout<< "成绩最高的同学的学号:"<<mix[0]<<"成绩:"<<mix[1];//最后输出mix就行了

纯手打,好长时间不用C++,有错误请见谅。
百度网友4684e1e
2013-06-04 · TA获得超过2309个赞
知道小有建树答主
回答量:1266
采纳率:0%
帮助的人:545万
展开全部
#include <iostream>
using namespace std;
struct info
{
int a,b;
};
int main()
{
int sum=0;
cin>>sum;
info num[sum];
int max=0,max_num=0;
for(int i=0;i<sum;i ;)
{
num[i].a=i;
cin>>num[i].b;
if(num[i].b>max) {max=num[i].b; max_num=i;}
};
cout<<"max score="<<max<<"max num="<<max_num<<endl;
return 0;
}

包含了输入数据,记录数据的数组,比较最大分数,最大分分数学号的输出。自行改动。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式