2015-03-08 68 views
0

Here是我迄今爲止的完整代碼,以防您想引用它。將3D陣列的索引傳遞給函數

所以我有一個三維陣列存儲高溫和低溫的給定日/月。我需要通過這個功能來傳遞數組:

double average_array(int A[], int SIZE) 
{ 
    int total=0; 
    double avg; 

    for (int i = 0; i < SIZE; i++) 
    { 
     total = total + A[i]; 
    } 

    avg = (double) total/(double) SIZE; 
    return avg; 
} 

我已經試過像

for (i=0; i<DAY; i++) 
    { 
     for (k=0; k<TEMP; k++) 
      { 
       cout << "The average for June was " << average_array(array[i][0], 3) << endl; 
      } 
    } break; 

事情只能得到平均22年6甚至

for (i=0; i<DAY; i++) 
{ 
    for (j=0; j<MONTH; j++) 
    { 
     for (k=0; k<TEMP; k++) 
     { 
      cout << "The average was " << average_array(array[i][j][k],3) << endl; 
     } 
    } 
} break; 

嘗試打印整體平均。前者不打印任何東西(雖然編譯很好),而後者返回「錯誤:從'int'無效轉換爲'int *'[-fpermissive]」

如何通過我的數組的適當索引功能?

+0

什麼是你數組的意思表示? [日] [月] [溫度] = ??? – John3136 2015-03-08 22:27:55

+0

我從來沒有見過任何人在for循環塊的最後一個元素後面放置一個'break'語句。你打算做什麼? – MrEricSir 2015-03-08 22:28:37

+0

'average_array(array [i] [0],TEMP)'將計算'0'月份的第i天的平均值。那是你要的嗎? (如果沒有,那麼我不清楚你想要什麼)。這將有助於明確說明您正在嘗試執行哪些計算。 – 2015-03-08 22:33:13

回答

0

如果陣列是arraydouble array[MONTH][DAY][TEMP];

for (i=0; i<MONTH; i++) 
{ 
    for (j=0; j<DAY; j++) 
    { 
     cout << "The average was " << average_array(&array[i][j][0],TEMP) << endl; 
// or average_array(array[i][j],TEMP) 
    } 
}