索引(i,j)的最大差,使得C ++中给定矩阵中的A [i] [j] = 0

我们给定一个大小为nxn的矩阵,条件为a [i] [j] = 0,任务是计算a [i] [j] = 0的索引的最大差。因此,我们可以清楚地说明矩阵中必须至少有一个零。

输入项 

int matrix[][] = {

   {0, 1, 1},

   {0, 0, 0},

   {4, 5, 1}}

输出-给定矩阵中A [i] [j] = 0的索引(i,j)的最大差为-

说明-我们在矩阵[0] [0],矩阵[1] [0],矩阵[1] [1]和矩阵[1] [2]处有元素0。因此,索引的最大差将在元素为0的矩阵[1] [0]处。因此,最大差为1。

输入项 

int matrix[][] = {

   {0, 1, 1},

   {0, 2, 9},

   {4, 0, 1}}

输出-索引(i,j)的最大差异,使得给定矩阵中的A [i] [j] = 0为-

解释-我们在矩阵[0] [0],矩阵[1] [0]和矩阵[2] [1]处有元素0。因此,索引的最大差将在元素为0的矩阵[1] [0]和矩阵[2] [1]处。因此,最大差为1。

以下程序中使用的方法如下

  • 输入矩阵,使其在任何索引处至少包含1。

  • 定义行和列的最大大小,即nx n的大小。

  • 取一个临时变量,该变量将存储最大差值。

  • 从0到row_size的启动循环

  • 在循环内,从0到col_size开始另一个循环

  • 检查IF矩阵[i] [j] = 0

  • 然后将最大值设置为作为指标之间的差异的最大值。

  • 返回最大值

  • 打印结果。

示例

#include <bits/stdc++.h>

using namespace std;

#define row 3

#define col 3

//找到最大的差异

int maximum(int matrix[row][col]){

   int max_val = 0;

   for (int i = 0; i < row; i++){

      for (int j = 0; j < col; j++){

         if (matrix[i][j] == 0){

            max_val = max(max_val, abs(i - j));

         }

      }

   }

   return max_val;

}

int main(){

   int matrix[row][col] = {

      { 1, 2, 0},

      { 0, 4, 0},

      { 0, 1, 0}};

   cout<<"Maximum difference of indices with A[i][j] = 0 is: "<<maximum(matrix);

   return 0;

}

输出结果

如果运行上面的代码,我们将获得以下输出-

Maximum difference of indices with A[i][j] = 0 is: 2

以上是 索引(i,j)的最大差,使得C ++中给定矩阵中的A [i] [j] = 0 的全部内容, 来源链接: utcz.com/z/321630.html

回到顶部