解题思路:结构体的基础知识。定义结构体,分数用浮点型,其他学号和姓名用字符串。然后通过for循环写值,每次的运算(求平均值,找分数最高的同学)都用独立的for循环,这样显得更加清晰。
注意事项:值得注意的是:这道题表述不清,分数最高不知道是指的单科还是总成绩。我理解的是总成绩。
参考代码:
#include<iostream>
using namespace std;
struct student{
string number;
string name;
float score[3];
};
int main(){
int n;
float sum[3]={0};
float stu_sum = 0;
float max = 0;
int index;
cin >> n;
student *p = new student[n];
for(int i=0; i<n; i++){
cin >> (*(p+i)).number;
cin >> (*(p+i)).name;
for(int j=0; j<3; j++){
cin >> (*(p+i)).score[j];
}
}
for(int i=0; i<3; i++){
for(int j=0; j<n; j++){
sum[i] += (*(p+j)).score[i];
}
sum[i] = sum[i] / n;
}
for(int i=0; i<n; i++){
for(int j=0; j<3; j++){
stu_sum += (*(p+i)).score[j];
}
if(stu_sum>max) {
index = i;
max = stu_sum;
}
stu_sum = 0;
}
for(int i=0; i<3; i++){
cout << sum[i] << " ";
}
cout << endl;
cout << (*(p+index)).number << " " << (*(p+index)).name << " " << (*(p+index)).score[0] << " " << (*(p+index)).score[1] << " " << (*(p+index)).score[2];
return 0;
}
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:728 |
C语言程序设计教程(第三版)课后习题7.2 (Java代码)浏览:690 |
C语言考试练习题_一元二次方程 (C语言代码)浏览:752 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:983 |
淘淘的名单 (C语言代码)答案错误???浏览:602 |
字符串比较 (C语言代码)答案错误????浏览:618 |
输出正反三角形 (C语言代码)浏览:825 |
C语言训练-大、小写问题 (C语言代码)浏览:631 |
WU-格式化数据输出 (C++代码)浏览:1254 |
WU-输出九九乘法表 (C++代码)浏览:1785 |