2016-01-22 73 views
-7

有5名學生和3 subjects.My問題是正在計算每個學生的平均分數時,前一個學生的平均分數被添加到剛剛經過計算的平均分數! 任何人都可以找出什麼是錯的或有什麼遺漏的一段代碼,請!謝謝:)查找平均分數爲每個學生

#include<iostream> 
using namespace std; 
int main() 
{ 
    int i,j; 
    double ave,scores,total=0.0; 

    for(j=1;j<=5;j++) 
    { 
     cout<<"Marks for Student"<<j<<":"<<endl; 
     for(i=1;i<=3;i++) 
     { 
      cout<<" subject"<<i<<":"; 
      cin>>scores; 
      total+=scores; 
     } 
     ave=total/3; 
     cout<<endl; 
    } 
    return 0; 
} 
+0

你應該接受通過單擊答案旁邊的大對勾幫助你答案。 – Atri

回答

1

在進行下一個平均計算時,您並未「清零」總計數器。這是一個簡單的問題,你將能夠如果通過行的代碼行步解決。

如果您現在不練習,解決更復雜的問題將非常困難。你問下一個問題,請發表你已經嘗試了什麼。

#include<iostream> 
using namespace std; 
int main() 
{ 
int i,j; 
double ave,scores,total=0.0; 

for(j=1;j<=5;j++) 
    { 
     cout<<"Marks for Student"<<j<<":"<<endl; 
     for(i=1;i<=3;i++) 
      { 
       cout<<" subject"<<i<<":"; 
       cin>>scores; 
       total+=scores; 
      } 
     ave=total/3; 

     // Changes here 
     cout<<"average:" << ave << endl; // print it here 
     ave=0; // zero it out 

     cout<<endl; 
    } 
    return 0; 
} 
3

您需要分配給total0在每個學生的循環。例如:

for(j=1;j<=5;j++) 
    { 
     cout<<"Marks for Student"<<j<<":"<<endl; 
     total = 0.0; 
     for(i=1;i<=3;i++) 
      { 
       cout<<" subject"<<i<<":"; 
       cin>>scores; 
       total+=scores; 
      } 
     ave=total/3; 
     cout<<endl; 
    }