Lenguaje C | encuentra puntos de silla en una matriz bidimensional

Ejemplo 64: La implementación del lenguaje C encuentra el punto de silla en una matriz bidimensional, es decir, el elemento en esa posición es el más grande en la fila y el más pequeño en la columna. También puede que no haya puntos de silla.

Análisis: cuando los lectores miran la pregunta, primero deben comprender qué es un punto de silla, primero encontrar el elemento con el valor más grande en una fila y luego verificar si es el valor más pequeño en la columna, si lo es, es un punto de silla, y genera el punto de silla; si no, entonces busque el número más grande en la siguiente fila ... Si el número más grande en cada fila no es un punto de silla, esta matriz no tiene puntos de silla.

Demostración del código fuente:

#include<stdio.h>//头文件 
#define N 3 //宏定义 
#define M 4 //宏定义 
int main()//主函数 
{
    
    
  int i,j,k,a[N][M],max,maxj,flag;//定义整型变量和二维数组 
  printf("请输入数组:\n");//提示语句 
  for(i=0;i<N;i++)
  {
    
     
    for(j=0;j<M;j++)
    {
    
    
      scanf("%d",&a[i][j]);//往数组里存数 
    }
  }
  for(i=0;i<N;i++)
  {
    
    
    max=a[i][0]; //开始时假设a[i][0]最大 
    maxj=0; //将列号0赋给maxj保存 
    for(j=0;j<M;j++) //找出第i行中的最大数 
    {
    
    
      if(a[i][j]>max)
      {
    
    
        max=a[i][j]; //将本行最大的数放在max中 
        maxj=j; //将最大数所在的列号存放在maxj中 
      }
    } 
    flag=1; //先假设是鞍点,以flag为1代表 
    for(k=0;k<N;k++)
    {
    
    
      if(max>a[k][maxj])
      {
    
     //将最大的数和其同列元素相比 
        flag=0; //如果max不是同列最小,表示不是鞍点 
        continue;
      }
    }
    if(flag)
    {
    
    
      printf("a[%d][%d]=%d\n",i,maxj,max); //输出鞍点的值和所在行列号 
      break;
    }
  }
  if(!flag)
  {
    
     
    printf("鞍点不存在!\n");//提示语句 
  }
  return 0;//主函数返回值为0 
}

Los resultados de la compilación y ejecución son los siguientes:

请输入数组:
1 2 3 4
5 6 7 8
9 10 11 12
a[0][3]=4

--------------------------------
Process exited after 10.52 seconds with return value 0
请按任意键继续. . .

Arriba, si lo ves y crees que es útil para ti, dale a Xiaolin un pulgar hacia arriba y compártelo con las personas que lo rodean, para que Xiaolin también tenga la motivación para actualizar, gracias padres y aldeanos ~

Lenguaje C para encontrar el punto de silla en una matriz bidimensional.Más
casos pueden ir a la cuenta pública: entrada de lenguaje C a competente

Supongo que te gusta

Origin blog.csdn.net/weixin_48669767/article/details/112799085
Recomendado
Clasificación