2017-07-07 265 views
-5

我有一個簡單的程序來查找更多的兩個數字並將它們存儲在數組的第一行。如何更改二維數組中的值?

數組是arr [tot] [2],我想將arr [tot] [0]中的每個元素與arr [tot] [1]中的元素進行比較,但它給了我無效的數組賦值。 應該使用哪個函數/方法來做到這一點?

for(i=0;i<tot;i++) 
    { 
     if(arr[i,1]>arr[i,0]) 
      { 
      arr[i,0]=arr[i,1]} 
    } 

全部程序

#include <iostream> 
#include <stdio.h> 
using namespace std; 
int main() 
{ 
    //Input 

    int tot = 23; 
    int arr[tot][2] = { 
    {9272992,-5268711}, 
    {-6457223,-8368810}, 
    {-3415057,-2776446}, 
    {-6492757,-3453386}, 
    {4313482,4783138}, 
    {5573672,8360909}, 
    {-2546018,2224083}, 
    {1267093,4700254}, 
    {6136723,9042717}, 
    {1277125,2796189}, 
    {-2062877,2036481}, 
    {6089545,-6182241}, 
    {-8795303,6074456}, 
    {8152425,785931}, 
    {-5134200,4319924}, 
    {6820437,-5861208}, 
    {9051213,-9636786}, 
    {-4230018,-4363843}, 
    {-2413233,-722776}, 
    {2182770,-8099750}, 
    {-5939638,-2243558}, 
    {-9738840,1514344}, 
    {9980524,1528253} 
     }; 


    //the comparing 
    int i; 
    for(i=0;i<tot;i++) 
     { 
      if(arr[i,1]>arr[i,0]) 
       { 
       arr[i,0]=arr[i,1] 
       } 
     } 
    for(i=0;i<tot;i++) 
     { 
     cout<<arr[i,0]<<" "; 
     } 
    return 0; 
} 

感謝回答我的問題:) 也感謝downvotes,這真的讓我瞭解到,只有智能和先進的問題,在這裏和愚蠢允許不歡迎錯誤和語法錯誤。

+2

請提供[mcve] – xaxxon

+5

試試'arr [i] [1]'和'arr [i] [0]'。 – songyuanyao

+0

二維數組的聲明。 'int matrix [ROWS] [COLS]'。 – rsp

回答

0

@ songyuanyao的評論是正確的。如果要訪問2D數組中的值,則需要使用arr[i][0]

你的代碼有三個錯誤:

  1. 在聲明數組,元素的數量必須是一個常數。所以int tot = 23;應該是const int tot = 23;

  2. arr[i,0]是一個有效的表達式,但它不應該在這裏使用。整個程序中應該使用語法arr[i][0]

  3. 您錯過了分號。

一些解釋#2:錯誤「無效數組賦值」是由於線路arr[i,0]=arr[i,1](你錯過了;這裏也)。在arr[i,0]中,逗號是comma operator,它返回第二個操作數的值。因此arr[i,0]相當於arr[0],它是一維數組。同樣,arr[i,1]arr[1],它也是一維數組。但是array is not a modifiable L-value,所以arr[i,0]=arr[i,1]給出了「無效數組賦值」錯誤。這也解釋了爲什麼arr[i,1]>arr[i,0]不給編譯時錯誤,但它是一個運行時錯誤。

+0

是的,我現在明白了。但我不明白這個常數函數。它不會給我任何錯誤。我想問用戶他們想輸入多少個號碼。我不會改變這一點。如果我犯了一個錯誤,是否會阻止我改變這個數字? –

-2

不要使用此語法

if(arr[i,1]>arr[i,0]) 
    { 
    arr[i,0]=arr[i,1] 
    } 

相反,嘗試使用此:

if(arr[i][1]>arr[i][0]) 
    { 
     arr[i][0]=arr[i][1] 
    }