|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
问题描述】创建一个学生类,成员变量有姓名(Name),学号(ID)和三门课c++(CPlusScore)和高等数学(AMathScore)和大学英语(CEngScore)的成绩,成员函数有max()和avg(),分别为计算每个学生最高分和平均分的函数,如图1所示。初始化5个学生的信息,然后自定义函数实现计算5个学生的最高分的均值和平均分的均值并输出。
6-1.png
【样例输入】
1001 Kim 99 95 97
1002 Sam 89 78 85
1003 Tim 90 95 97
1004 Kathy 60 53 70
1005 Jane 70 89 63
我的代码哪里错了
#include <iostream>
#include<string>
using namespace std;
class Student
{
public:
string name;
int ID;
int scorec;
int scorem;
int scoree;
};
int main()
{double avg1,avg2,avg3,avg4,avg5;
Student s1;
cin>>s1.ID>>s1.name>>s1.scorec>>s1.scorem>>s1.scoree;
avg1=1.0*(s1.scorec+s1.scoree+s1.scorem)/3;
Student s2;
cin>>s2.ID>>s2.name>>s2.scorec>>s2.scorem>>s2.scoree;
avg2=1.0*(s2.scorec+s2.scoree+s2.scorem)/3;
Student s3;
cin>>s3.ID>>s3.name>>s3.scorec>>s3.scorem>>s3.scoree;
avg3=1.0*(s3.scorec+s3.scoree+s3.scorem)/3;
Student s4;
cin>>s4.ID>>s4.name>>s4.scorec>>s4.scorem>>s4.scoree;
avg4=1.0*(s4.scorec+s4.scoree+s4.scorem)/3;
Student s5;
cin>>s5.ID>>s5.name>>s5.scorec>>s5.scorem>>s5.scoree;
avg5=1.0*(s5.scorec+s5.scoree+s5.scorem)/3;
double a[5]={avg1,avg2,avg3,avg4,avg5};
double max=a[0];double min=a[0];
for(int i=0;i<5;i++)
{
if(a[i]>max)
{
max=a[i];
}
}
for(int j=0;j<5;j++)
{
if(a[j]<min)
{
min=a[j];
}
}
cout<<max<<endl;
cout<<min<<endl;
return 0;
}
在您的代码中,有几个地方出现了错误:
1. 您没有包括头文件iostream和string。请确保加上#include <iostream>和#include <string>。
2. 您在使用std命名空间前没有写using namespace std;。这将导致您无法使用cin和cout等标准输入输出流。请在main函数之前加上using namespace std;。
3. 您在for循环中缺少了循环条件。请在for循环的括号中添加循环条件,例如i < 5。
4. 您对a进行了错误的初始化。请使用数组或容器来存储avg1到avg5,并计算它们的最大值和最小值。
下面是修改后的代码:
#include <iostream>
#include <string>
using namespace std;
class Student
{
public:
string name;
int ID;
int scorec;
int scorem;
int scoree;
};
int main()
{
double avg1, avg2, avg3, avg4, avg5;
Student s1;
cin >> s1.ID >> s1.name >> s1.scorec >> s1.scorem >> s1.scoree;
avg1 = 1.0 * (s1.scorec + s1.scoree + s1.scorem) / 3;
Student s2;
cin >> s2.ID >> s2.name >> s2.scorec >> s2.scorem >> s2.scoree;
avg2 = 1.0 * (s2.scorec + s2.scoree + s2.scorem) / 3;
Student s3;
cin >> s3.ID >> s3.name >> s3.scorec >> s3.scorem >> s3.scoree;
avg3 = 1.0 * (s3.scorec + s3.scoree + s3.scorem) / 3;
Student s4;
cin >> s4.ID >> s4.name >> s4.scorec >> s4.scorem >> s4.scoree;
avg4 = 1.0 * (s4.scorec + s4.scoree + s4.scorem) / 3;
Student s5;
cin >> s5.ID >> s5.name >> s5.scorec >> s5.scorem >> s5.scoree;
avg5 = 1.0 * (s5.scorec + s5.scoree + s5.scorem) / 3;
double a[] = { avg1, avg2, avg3, avg4, avg5 };
double max = a[0], min = a[0];
for (int i = 0; i < 5; i++)
{
if (a[i] > max)
{
max = a[i];
}
if (a[i] < min)
{
min = a[i];
}
}
cout << "最高分的均值:" << max << endl;
cout << "平均分的均值:" << (avg1 + avg2 + avg3 + avg4 + avg5) / 5 << endl;
return 0;
}
修改后的代码会接受5个学生的信息,计算每个学生的最高分和平均分,然后计算最高分的均值和平均分的均值,并输出结果。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|