#include
#include
using namespace std;
const int n=3;
struct student
{
string name;
int num;
double score[3];
double average;
}student1[n];
int main()
{
int i,j;
for(i=0;i<n;i++)
{
cout<<"请输入第"<<i+1<<"个学生的信息:";
cin>>student1[i].num
>>student1[i].name
>>student1[i].score[0]>>student1[i].score[1]>>student1[i].score[2];
}
double sum=0;
for(i=0;i<n;i++)
{
for(j=0;j<3;j++)
{
sum=sum+student1[i].score[j];
}
student1[i].average=sum/3;
sum=0;
}
cout<<"输出各学生信息:"<<endl;
for(i=0;i<n;i++)
{
cout<<student1[i].num<<" "
<<student1[i].name<<" "
<<student1[i].score[0]<<" "<<student1[i].score[1]<<" "<<student1[i].score[2]<<" "
<<student1[i].average
<<endl;
}
double max=student1[0].average;
int row=0;
for(i=0;i<n;i++)
{
if(max>86)
{
max=student1[i].average;
row=i;
}
}
cout<<"总分超过260的学生有:"<<endl;
for(i=0;i<n;i++)
{
cout<<student1[row].num<<" "
<<student1[row].name<<" "
<<student1[row].score[0]<<" "<<student1[row].score[1]<<" "<<student1[row].score[2]<<" "
<<student1[row].average
<<endl;
}
double average1[3];
sum=0;
for(j=0;j<3;j++)
{
for(i=0;i<n;i++)
{
sum=sum+student1[i].score[j];
}
average1[j]=sum/n;
sum=0;
}
cout<<endl;
for(i=0;i<3;i++)
{
cout<<"第"<<i+1<<"门课的平均成绩:"<<endl;
cout<<average1[i]
<<endl;
}
return 0;
}
求解问题出在哪里??在线等大神解答!
int i,j;
for(i=0;i {
cout cin>>student1[i].num
>>student1[i].name
>>student1[i].score[0]>>student1[i].score[1]>>student1[i].score[2];
}
double sum=0;
for(i=0;i<n;i++)
{
for(j=0;j<3;j++)
{
sum=sum+student1[i].score[j];
}
student1[i].average=sum/3;
sum=0;
}
cout<<"输出各学生信息:"<<endl;
for(i=0;i<n;i++)
{
cout<<student1[i].num<<" "
<<student1[i].name<<" "
<<student1[i].score[0]<<" "<<student1[i].score[1]<<" "<<student1[i].score[2]<<" "
<<student1[i].average
<<endl;
}
double max=student1[0].average;
int row=0;
for(i=0;i {
if(max>86)
{
max=student1[i].average;
row=i;
}
}
cout<<"总分超过260的学生有:"<<endl;
for(i=0;i<n;i++)
{
cout<<student1[row].num<<" "
<<student1[row].name<<" "
<<student1[row].score[0]<<" "<<student1[row].score[1]<<" "<<student1[row].score[2]<<" "
<<student1[row].average
<<endl;
}
double average1[3];
sum=0;
for(j=0;j<3;j++)
{
for(i=0;i<n;i++)
{
sum=sum+student1[i].score[j];
}
average1[j]=sum/n;
sum=0;
}
cout<<endl;
for(i=0;i<3;i++)
{
cout<<"第"<<i+1<<"门课的平均成绩:"<<endl;
cout<<average1[i]
<<endl;
}
return 0;
}
请说明一下什么问题呗
改一下这里的代码就行了:
cout<<"总分超过260的学生有:"<<endl;
for(i=0;i<n;i++)
{
if ((student1[i].score[0] + student1[i].score[1]+ student1[i].score[2]) > 260)
{
cout<<student1[i].num<<" "
<<student1[i].name<<" "
<<student1[i].score[0]<<" "<<student1[i].score[1]<<" "<<student1[i].score[2]<<" "
<<student1[i].average
<<endl;
}
}
首先这里,
for(i=0;i<n;i++)
{
if(max>86)
{
max=student1[i].average;
row=i;
}
}
是找到最后一个average大于86的位置,row等于那个位置的索引。
然后接下来的for循环,输出了n遍索引为row那个位置的student的内容。
下边那个平均分貌似没问题。