2012-11-08 123 views
2

基本上我有,C++二維數組功能

double marks [STUDENTS][ASSIGNMENTS] = { (0.1,0.2,0.3,0.4,0.5,0.6,0.7), 
              (1,0.9,0.8,0.7,0.6,0.5,0.5), 
              (0.8,0.8,0.8,0.8,0.8,0.8,0.8), 
              (0.8,0.9,0.7,0.8,0.9,0.7,0.8), 
              (0.5,0.6,0.7,0.8,0.9,0.5,0.9)}; 

而且我想:double studentAverages [STUDENTS]studentAverages=calculateStudentAverages(marks);

使用:

double calculateStudentAverages (double marks[STUDENTS][ASSIGNMENTS]){ 
    double averages[STUDENTS]; 
    double average; 
    for (int i = 0; i < STUDENTS; i++) { 
      for (int j = 0; j < ASSIGNMENTS; j++) { 
       average = average + marks[i][j]; 

      } 
      averages[i]=average/ASSIGNMENTS; 

    }  
    return averages; 
} 

,但我得到「無法從「雙[轉換5]'到'double'「和」無法從'double'轉換爲'double [5]'「

+0

你會發現哪些錯誤? –

+0

你應該避免原始數組,因爲它們[行爲奇怪](http://stackoverflow.com/a/10253277/365496) – bames53

+0

函數被調用的行我得到: '=':無法從'double'轉換爲'double [5]' 函數中的返回行給出: 'return':無法從'double [5]'轉換爲'double' – user1810269

回答

3

您的一個錯誤或者是因爲你的函數聲明返回一個double,但你試圖返回一個doubles的數組。所以,你要麼需要改變你的函數頭,以適應爲,或只返回一個double

不相關的錯誤,但是當你開始你一定要初始化average0.0,在計算中,否則你未定義行爲

+1

..''averages'不能真的從函數返回,因爲它們是本地的 –

+0

我只需要函數返回的每行的平均值作爲向量,但不知道如何。 – user1810269

+0

@ user1810269,bames53在你原來的問題中的鏈接包含有幫助的信息aso如何改變你的代碼以避免錯誤,並有明確定義的行爲 –