2016-01-27 70 views
-1

這些都是全局變量:如何使參考變量(C++)

const int MAXROW = 5; 
const int MAXCOL = 5; 
int A[MAXROW][MAXCOL] = { 0 }; 
int newarr[MAXROW + 1][MAXCOL + 1] = { 0 }; 

如何聲明他們主要和這些功能使用它們:

void case1() 
{ 
for (int r = 0; r < MAXROW; ++r) 
    for (int c = 0; c < MAXCOL; ++c) { 
     cout << "\n A[" << r << "][" << c << "]= "; 
     cin >> A[r][c]; 

    } 

} 

void case2() 
{ 

    int max[MAXCOL] = { 0 }; 

    for (int r = 0; r < MAXROW; ++r) { 
     int minr = A[r][0]; 
    .............................. 

    } 
void case3() 
{ 
    int negNumber = 0; 
    double average = 0; 

    for (int r = 0; r < 6; ++r) { 
     for (int c = 0; c < 6; ++c) { 
      .............. 
if (newarr[r][c] < 0) { 
       ++negNumber; 
       average += newarr[r][c]; 

我使用做而菜單。我怎樣才能最輕鬆地做到這一點。

+0

如果它們是全局變量,你不「聲明「他們在主 - 你已經宣佈他們,當你說'const int MAXROW = 5; '等,你如何使用它們?那麼你只是 - 使用它們。像你在case1()中做的那樣。無需將它們傳遞到方法中 - 它們在編譯單元中的任何位置均可在全局範圍內使用。 – FredK

+0

問題是我不想將它們用作全局。 – aspaar321

回答

0

您可以使用case3()negNumberaverage中的相同方式在main()中聲明局部變量。

將變量傳遞給另一個函數非常簡單。你只需要爲你的函數定義輸入參數。像這樣:case1(int var1)。現在,您可以在函數case1中使用var1,並且必須使用傳入的參數調用case1。像這樣:case1(2)

你可以找到解決方案正是針對你的情況(passsing二維數組到funtions)位置:Passing a 2D array to a C++ function

瞭解更多關於C++此功能:甲https://msdn.microsoft.com/en-us/library/c4d5ssht.aspx