我正在学习C编程语言,我遇到了一个我试图解决的问题。我试着寻找我的问题的答案,但我找不到。
我的问题是如何在矩阵中检查元素是否存在多次。此外,如果它不止一次但存在于同一行,则不计算在内。
我尝试写一个函数来做这个,但是当我看到它时,我感到很头疼,所以我想我从一开始就做错了。
有人可以告诉我该怎么做吗?
提前致谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
根据您的要求,您需要分析矩阵中的所有元素。您还需要跟踪是否已在该列中找到该元素。以下是示例代码:
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
是否多次出现。