2014-12-25 32 views
0

假設我有一個4×4矩陣,並且我提示輸入一些位置和該位置是4,1如何移動僅在一個方向上的數組元素的位置

(向上運動)現在我想迭代通過位置(3,1) - (2,1) - (1,1),檢查這些值,有時我必須更改這些值,並最終打印一個新的矩陣與更新值

類似如何迭代通過,3),(3,3)(2,3),(1,3)如果某個人進入位置爲4,4(左移)

我試過了,這個到目前爲止..

for(rowCount = 0; rowCount < rows; rowCount++) { 
    for(columnCount = 0; columnCount < columns; columnCount++){ 
     if(rowCount == specialRow && columnCount == specialColumn) 

     { 
      if(board[rowCount][columnCount] = 1) 
      { 
       printf("%d \t",board[rowCount][columnCount]); 
       board[rowCount][columnCount] = 0 ; 

      } 
     } 

     for(rowCount = 0; rowCount < rows; rowCount++) { 
      for(columnCount = 0; columnCount < columns; columnCount++) 
       printf("%d \t",board[rowCount][columnCount]); 

      printf("\n"); 
     } 
    } 
} 
  • 行指最高行
  • 列指的最大列數
  • rowCount時爲行迭代
  • 信息columnCount爲科拉姆迭代
  • specialRow和sepcialColumn爲進入新的位置(從這個位置我們有以向上/向左/向後方向掃描值)。
+6

'if(board [rowCount] [columnCount] = 1)':'=' - >'=='? – BLUEPIXY

+0

我沒有明白。你是否要改變我的陳述,如果條件作爲董事會[rowCount] [columnCount] = 1板[rowCount] [columnCount] = - > == 0 – Mann

+3

大聲笑,不,他不是暗示。非常正確 - 他建議你檢查一下你對=的使用,或許考慮== – Grantly

回答

1

首先更新您的陣列基於一些條件假設輸入爲4 4,所以你應該做

for(rowCount = 0; rowCount < rows; rowCount++) { 

    for(columnCount = 0; columnCount < columns; columnCount++){ 
     if(columnCount == (specialColumn-1)) 

     { 
      if(board[rowCount][columnCount] == 1) 
      { 
       printf("%d \t",board[rowCount][columnCount]); 
       board[rowCount][columnCount] = 0 ; 

      } 
     } 
} 
} 

現在假設需要修改你的基質製成打印出來seperately

for(rowCount = 0; rowCount < rows; rowCount++) { 
    for(columnCount = 0; columnCount < columns; columnCount++) 
    printf("%d \t",board[rowCount][columnCount]); 

    printf("\n"); 
    } 
+0

嗯你的第二'如果'聲明需要注意... – Grantly

+0

沒問題:)容易被忽視。聖誕快樂聖誕 – Grantly

+0

到目前爲止,它的工作,但我需要的位置specialRow,specialColumn值不變。即使這些值被修改 – Mann

相關問題