12. 编写一个成绩统计程序,有10个学生(每个学生包括学号、姓名、

#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的内容。

下边那个平均分貌似没问题。