m0_63753877 2021-11-09 15:50 采纳率: 50%
浏览 59
已结题

以下代码为找到鞍点并输出所在行列,如何更改为找到行中最小,列中最大的值,并输出所在行列

#include<stdio.h>
#define M 3
#define N 4
int main(void)
{
int a[M][N],i,j,k;
printf("请输入二位数组的数据:\n");
for(i=0;i<M;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
for(i=0;i<M;i++)
{
k=0;
for(j=1;j<N;j++)
if(a[i][j]>a[i][k])
k=j;
for(j=0;j<M;j++)
if(a[j][k]<a[i][k])
break;
if(j==M)
printf("%d %d行%d列\n",a[i][j],i,k);

}
 return 0;       

}

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-11-09 15:56
    关注

    你不是写反了吧?
    for(i=0;i<M;i++)是对每一行进行循环
    for(j=1;j<N;j++)循环应该是找出这一行的最小值,但if(a[i][j] > a[i][k]是找最大值啊
    同样
    最后一个for(j=0;j<M;j++)应该是对行最小值所在的列比较它是否为最大值,但if(a[j][k] < a[i][k])判断是找到一个更小的就退出

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 创建了问题 11月9日

悬赏问题

  • ¥15 速帮,学校需要在外上班没空
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改
  • ¥15 Windows 系统cmd后提示“加载用户设置时遇到错误”
  • ¥50 vue router 动态路由问题
  • ¥15 关于#.net#的问题:End Function
  • ¥15 无法import pycausal
  • ¥15 VS2022创建MVC framework提示:预安装的程序包具有对缺少的注册表值的引用
  • ¥15 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义