簡體   English   中英

如何檢查元素在矩陣(C)中是否存在多次?

[英]How to check if an element exists more than once in matrix (C)?

我正在學習 C 編程語言,我遇到了一個我一直在試圖解決的問題。 我試圖尋找我的問題的答案,但我找不到。

我的問題是如何檢查一個元素是否在矩陣中多次存在。 此外,如果它存在多次但在同一行中,則不計算在內。

我嘗試編寫一個函數來執行此操作,但是當我看到它時,我很頭疼呵呵,所以我想我從一開始就做錯了。

有人可以告訴我怎么做嗎?

提前致謝。

  1. 檢查一個元素是否在矩陣中多次存在:對整個數組進行排序(就像它是一個線性向量一樣)。 然后線性通過向量並檢查相鄰元素是否相同。
  2. 檢查一個元素在矩陣的一列中是否存在多次:執行與 1. 相同的操作,但僅針對每一列。

對於您的要求,您需要分析矩陣中的所有元素。 您還需要跟蹤該元素是否已在該列中找到。 這是一個示例代碼:

int count(int **matrix, int rows, int cols, int number) {
  int count=0, found_in_row=0, i, j;
  for(i=0; i<rows; i++) {
    for(j=0; j<cols; j++) {
      if(matrix[i][j]==number && found_in_row==0) {
        count++;
      }
    }
    found_in_row=0;
  }
 return count;
}

現在假設我有這個矩陣:

1 2 1
1 2 3

通過調用count(matrix, 3, 3, 1)你會得到 2 作為答案。 這意味着數字 1 出現了兩次(不計算第一行的第二個 1)。 因此,通過在矩陣上調用count ,您將通過檢查數字是否大於 1 來知道number出現多次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM