C ++中方阵的两条对角线中的逐行公共元素
给定一个二维方阵作为输入。目标是找到在其主要和次要对角线中共同的元素。如果输入矩阵是
1 2 3 2 2 4 1 4 7
那么它的主对角线是127,次对角线是321。公共元素是2。
两者中总是至少有一个共同元素。
例子
输入 -矩阵[][5]={{1,2,1},{4,1,6},{1,8,1}};
输出 -对角线上按行的公共元素:3
说明 -矩阵是:
1 2 1 4 1 6 1 8 1
主对角线=111,次对角线=111
所有3个值都是通用的。计数=3
输入 -矩阵[][5]={{1,4,4,1},{3,4,4,6},{1,1,1,4},{1,9,9,2}};
输出 -对角线上按行的公共元素:3
说明-矩阵是:
1 4 4 1 3 4 4 6 1 1 1 4 1 9 9 2
主对角线=1412,次对角线=1411
前3个值是通用的。计数=3
下面程序中使用的方法如下
在这种方法中,我们将首先从第0行开始逐行遍历方阵。对于每一行,检查元素M[i][i]是否等于M[i][size-i-1]。如果是,那么它的两个对角线的公共元素,增加计数。
取输入矩阵Matrix[][5]。
设置其大小。
函数countElement(intmt[][5],intsize)获取输入矩阵及其大小,并返回主对角线和次对角线上的公共值的计数。
取初始计数为0。
使用for循环从i=0遍历到i
如果mt[i][i]==mt[i][size-i-1]然后增加计数。
最后返回计数作为结果。
在main中打印结果。
示例
#include <iostream> using namespace std; int countElement(int mt[][5], int size){ int count = 0; for (int i=0;i<size;i++){ if (mt[i][i] == mt[i][size-i-1]){ count=count+1; } } return count; } int main(){ int Matrix[][5] = {{1, 2, 1}, {4, 1, 6}, {1, 8, 1}}; int size=3; cout<<"Row-wise common elements in diagonals:"<<countElement(Matrix, size); return 0; }输出结果
如果我们运行上面的代码,它将生成以下输出
Row-wise common elements in diagonals:3