2013-10-20 128 views
-1

相同的值需要做哪些計算陣列中的誰具有唯一值功能檢查列

作爲例子數列的功能: ARRAY

1 2 3 4 
2 2 1 4 

應該算兩個獨特的列,其是:

1 3 
2 1 

結果應該是:2

這是我得到了多少,但代碼不起作用(列出錯誤的列數),我有點不知道。

int search_ind(int array[row][col], int r, int c,int column) 
{ 
    column=0; 
    int i,j,k; 

    for(j=0;j<c;j++) 
    { 
     for(i=0;i<r;i++) 
     { 
     for(k=i+1;k<r;k++)    
     { 
      if (array[i][j] == array[i+k][j]) 
       {            
       fail=1; 
       break; 
      } 
      else 
       { 
      fail=0; 
      } 

     } 
      if (fail == 1) 
      { 
       break; 
      } 
     } 
     if (fail == 0) 
     { 
      column++; 
     } 

    } 
    printf("With indexes:\nColumn count with unique elements: %d\n\n",column);   
} 
+4

您的縮進真的很奇怪。你從來沒有宣佈失敗,所以這甚至不會編譯;第一個暗示是,這不是你嘗試解決問題的原因。 –

+0

聽起來像作業... – dtech

+0

爲什麼你通過列作爲參數? – DashControl

回答

0

你應該做到以下幾點:

Starting at column 0 loop over all columns 
    Save the value of the cell [this column][row: 0] to a variable 
    Starting at row 1 of this column loop through all cells of this column 
     if this cell is not equal to the variable: break this loop 

    We exited above loop without encountering a break. We can increase our matching-columns counter by 1 
We looped through all columns. It's time to return the matching-columns counter. 

順便說一句:請爲您指數更好的名字。 currentColumn,currentLine等而不是i,j,k