2014-01-07 48 views
-7

我試圖比較一個數組的平均值,並檢測是否有任何類似的平均值,例如,如果我有這些平均值25,30,70,30,60,所以函數應該返回true因爲30是有兩次,但似乎我在做什麼是錯的相同的平均函數C++

bool sameAverage(Student Array[],int size) 
{ 
    bool isSame=false; 

    for (int i=0;i<size;i++) 
    { 
     for (int j=0;j<size;j++) 
     { 
      if (Array[i].getAverageGrade==Array[j].getAverageGrade) 
       isSame=true; 
     } 

    } 

    return isSame; 
} 

它顯示我點操作

+1

你爲什麼認爲這是錯的?你沒有給我們任何消息。 –

+0

它不會做我想要的 – user3010026

+3

@ user3010026你想要什麼? – Maroun

回答

3

Array[i].getAverageGrade是一個函數。您可以在功能比較其他功能(如Array[j].getAverageGrade),但你真正想要的是

  1. 調用該函數
  2. 結果比較調用其他函數的結果:

    Array[i].getAverageGrade() == Array[j].getAverageGrade() 
    

順便說一句:請記住別人告訴你比較double的值。

+0

謝謝你是我程序中的問題,現在很好! – user3010026

0

我明白了什麼下一條紅線是,你正在尋找重複在數組中。

首先對您的數組進行排序。

然後,使用一個循環遍歷數組。兩個循環是不需要的。

bool sameAverage(Student Array[],int size) 
{ 
    for(int i = 0; i < size - 1; i++) { 
     //Use your favorite way to compare floating point numbers for equality 
     if ((Array[i].getAverageGrade() - Array[i + 1].getAverageGrade()) < 0.0001) {   
     return true; 
     } 
    } 
    return false; 
}