2013-05-21 23 views
0

我一直收到錯誤:「運行時檢查失敗#3 - 正在使用變量'x'而未初始化。 「將整數數組作爲參數並返回數組中奇數之和的函數

我以爲我用數組中的所有數字初始化它?

#include <iostream> 
using namespace std; 

const int MAX = 10; 

int odd(int sumOdd[]) 
{ 
int sum = 0; 
for(int i = 0; i < MAX; i ++) 
{ 
    if(sumOdd[i] % 2 != 0) 
    sum+=sumOdd[i]; 
} 
cout << "Sum of odd integers in the array: " << sum << endl; 
return sum; 

} 

int main() 
{ 
int x[MAX] = {13,14,8,7,45,89,22,18,6,10}; 

int returnArray(x[MAX]); 

cout << "Sum of odd integers in the array" << endl; 

system("pause"); 
return 0; 
} 
+0

'int returnArray(x [MAX]);'不是在做你認爲它是。 –

+0

編譯警告:'main.cpp:在函數'int main()'中: main.cpp:23:5:warning:未使用的變量'returnArray'[-Wunused-variable] int returnArray(x [MAX]) ; main.cpp:27:16:警告:忽略'int system(const char *)'的返回值,聲明屬性爲warn_unused_result [-Wunused-result] system(「pause」);' – chris

+0

這是什麼? 'int returnArray(x [MAX]);' – 2013-05-21 02:08:28

回答

1
int returnArray(x[MAX]); // in main 

應該

returnArray(x); 

你已經宣佈的功能以一個數組並返回一個整數,因此,所有你需要做的就是調用該函數與數組作爲參數。

+0

啊這樣的noob ...謝謝! – Nick

+0

@Nick沒問題。很高興我能幫上忙。 – 0x499602D2

1

嘗試改變:

int returnArray(x[MAX]); 

int sum = returnArray(x); 
cout << "Sum of odd integers in the array" << sum << endl; 

returnArray回報sum。您可以使用一個臨時變量來保存返回值,並把它打印出來或者直接使用返回值如下:

cout << "Sum of odd integers in the array" << returnArray(x) << endl; 

當你調用一個函數,只需使用函數名稱和參數給它,你在這種情況下不需要返回類型(int)。您還直接使用陣列名稱x而不是x[MAX]