C++中矩阵中大于修正均值的元素个数
矩阵的修正均值定义如下:
(行最小值之和 + 列最大值之和) / (行数 + 列数)
让我们来看一个例子。
1 2 3 4 5 6 7 8 9
均值 = (1 + 4 + 7 的和 + 7 + 8 + 9 的和) / (3 + 3)
我们首先需要找到均值,然后计算大于均值的元素个数。
如果我们采用上面的例子,那么我们将得到3作为计数结果。有3个元素大于均值6。
算法
初始化矩阵。
找到行最小元素之和。
找到列最大元素之和。
然后使用上面提到的公式计算均值。
现在,计算矩阵中大于均值的元素个数。
实现
以下是上述算法在C++中的实现
#include <bits/stdc++.h> using namespace std; #define m 3 #define n 3 int getElementCountGreaterThanMean(int matrix[][n]) { int rowSum = 0; for (int i = 0; i < m; i++) { int min = matrix[i][0]; for (int j = 1; j < n; j++) { if (matrix[i][j] < min){ min = matrix[i][j]; } } rowSum += min; } int colSum = 0; for (int i = 0; i < n; i++) { int max = matrix[0][i]; for (int j = 1; j < m; j++) { if (max < matrix[j][i]) { max = matrix[j][i]; } } colSum += max; } int mean = (rowSum + colSum) / (m + n); int count = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (mean < matrix[i][j]) { count++; } } } return count; } int main() { int matrix[m][n] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; cout << getElementCountGreaterThanMean(matrix) << endl; return 0; }
输出
如果您运行以上代码,您将得到以下结果。
3
广告