Liamcoder


私信TA

用户名:18817572995

访问量:7009

签 名:

Where there is a will, there is a way.

等  级
排  名 688
经  验 2221
参赛次数 2
文章发表 11
年  龄 0
在职情况 学生
学  校 上海师范大学
专  业 计算机科学与技术

  自我简介:

屌丝程序狗

解题思路:结构体的基础知识。定义结构体,分数用浮点型,其他学号和姓名用字符串。然后通过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分

0 人评分

  评论区