解题思路:结构体的基础知识。定义结构体,分数用浮点型,其他学号和姓名用字符串。然后通过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语言训练-列出最简真分数序列* (C语言代码)浏览:543 |
弟弟的作业 (C++代码)浏览:1342 |
不容易系列 (C语言代码)浏览:702 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:628 |
【明明的随机数】 (C语言代码)浏览:845 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:569 |
循环入门练习5 (C语言代码)浏览:907 |
简单的a+b (C语言代码)浏览:1024 |
字符逆序 (C语言代码)浏览:541 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:604 |