cghhgccc 2022-02-10 17:55 采纳率: 50%
浏览 62
已结题

求n*m矩阵的鞍点(2<=n和m<=10)。鞍点既是所在行的最大值又是所在列的最小值。 如果矩阵没有鞍点,则输出0;否则在每一行输出鞍点的行和列及其值。 注意:矩阵的元素可能有些值是一样的。

img


下面是我个人写的代码,问题还挺大的,希望友友们帮帮忙,可以拿输入样例测试下,问题解决一定会采纳的!


#include <stdio.h>
int main(void){
  int m,n,i,j,a[20][20],max,min,count=0,t,r,c;
  scanf("%d %d",&m,&n);
  for(i=0;i<m;i++){
    for(j=0;j<n;j++){
      scanf("%d",&a[i][j]);
    }
  }
  for(i=0;i<m;i++){
    max=a[i][0];
    for(j=1;j<n;j++){
      if(max<=a[i][j]){
        max=a[i][j];
        min=max;
    for(t=0;t<m;t++){
      if(min>=a[t][j]){
        min=a[t][j];
      }
    }
    if(max==min){
      count++;
      printf("Matrix[%d,%d]=%d\n",i,j,a[i][j]);
      break;
    }
  }
    }
  }
  if(count==0){
    printf("0\n");
  }
  return 0;
}
  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-02-11 10:08
    关注

    供参考:

    #include<stdio.h>
    #define N 20
    int main()
    {
        int a[N][N], m, n, x[N], y[N], cnt = 0, i, j;
        scanf("%d%d", &m, &n);
        for (i = 0; i < m; i++)
        {
            for (j = 0; j < n; j++)
            {
                scanf("%d", &a[i][j]);
            }
        }
        for (i = 0; i < m; i++)
        {
            x[i] = a[i][0];
            for (j = 1; j < n; j++)
            {
                if (a[i][j] > x[i])
                    x[i] = a[i][j];
            }
        }
        for (j = 0; j < n; j++)
        {
            y[j] = a[0][j];
            for (i = 1; i < m; i++)
            {
                if (a[i][j] < y[j])
                    y[j] = a[i][j];
            }
        }
        for (i = 0; i < m; i++)
        {
            for (j = 0; j < n; j++)
            {
                if (a[i][j] == x[i] && a[i][j] == y[j])
                {
                    printf("Matrix[%d,%d]==%d\n", i, j, a[i][j]);
                    cnt++;
                }
            }
        }
        if (cnt == 0)
            printf("0\n");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月21日
  • 已采纳回答 2月13日
  • 创建了问题 2月10日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?