int main() { student stu[100]; double s[100][100], g[100][100]; int count=0; string n; for(int i=0;i<100;i++) { cin>>n; if(n=="no") break; count++; for(int j=0;j<100;j++) { cin>>s[i][j]; if(s[i][j]==-1) break; cin>>g[i][j]; } stu[i]=student(n, g[i], s[i]); } cout<<averagegrade(stu, count); return 0; }这段代码为什么原来g和s是二维数组,最后传给stu[i]的是一维的
时间: 2023-07-31 09:03:51 浏览: 37
在这段代码中, `g` 和 `s` 是二维数组,每个元素都存储了一个学生的多门课程的成绩。而 `stu` 数组是一个 `student` 类型的一维数组,每个元素存储了一个学生的姓名和多门课程的成绩。在赋值 `stu[i]` 的时候,是把 `g[i]` 和 `s[i]` 作为参数传入了 `student` 类的构造函数中,构造函数会将它们存储在 `student` 类的内部。所以最后 `stu` 数组中存储的是多个 `student` 类型的对象,每个对象都包含了一个学生的姓名和多门课程的成绩。
相关问题
Student类包含私有数据成员学生姓名、成绩、总人数、总成绩;成员函数sum()计算总人数和总成绩;成员函数aver()计算n个学生的平均成绩。补充完成下列程序。 #include using namespace std; class Student //补充代码 int Student::sum_score=0; int Student::count=0; int main() { Student stu[5] ={Student("Ma",89),Student("Hu",90),Student("LU",95), Student("Li",88),Student("Gao",75)}; for(int i=0;i<5;i++) stu[i].sum(); cout<<"Average="<<Student::aver()<<endl; }
```c++
#include<iostream>
using namespace std;
class Student{
private:
string name; //学生姓名
double score; //学生成绩
static int total; //总人数
static double sum; //总成绩
public:
//构造函数
Student(string n,double s):name(n),score(s){
total++;
sum += s;
}
//静态函数
static double getAverage(){
return sum/total;
}
};
//静态成员变量初始化
int Student::total = 0;
double Student::sum = 0;
int main(){
Student st1("小明", 90);
Student st2("小红", 85);
Student st3("小刚", 95);
cout << "平均成绩为:" << Student::getAverage() << endl;
return 0;
}
```
C++考试正在进行。请设计一个学生类student,学号、本次考试成绩是其私有数据成员,同时有一个计算本次考试平均成绩的友元函数 double average(student *p,int count) 以上类名和友元函数的形式,均须按照题目要求,不得修改。 输入是 学号([00001,99999])和成绩,以0结束。(不超过100个学生) 输出是平均成绩。 输入样例: 10001 90 10002 93 0 输出样例: 91.5 代码长度限制 16 KB 时间限制 400 ms
```c++
#include <iostream>
using namespace std;
class student {
private:
int stu_id; // 学号
int score; // 成绩
public:
student(int id, int s): stu_id(id), score(s) {} // 构造函数
friend double average(student* p, int count); // 友元函数
};
double average(student* p, int count) {
double sum = 0;
for (int i = 0; i < count; i++) {
sum += p[i].score;
}
return sum / count;
}
int main() {
student s[100];
int id, score, count = 0;
while (cin >> id >> score && id != 0) {
s[count++] = student(id, score);
}
cout << average(s, count) << endl;
return 0;
}
```