C语言求鞍点

任务描述

题目描述:找出具有mn列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10

相关知识(略)

编程要求

输入

输入数据有多行,第一行有两个数mn,下面有m行,每行有n个数。

输出

按下列格式输出鞍点:
Array[i][j]=x
其中x代表鞍点,ij为鞍点所在的数组行和列下标,我们规定数组下标从0开始。
一个二维数组并不一定存在鞍点,此时请输出None
我们保证不会出现两个鞍点的情况,比如:
3 3
1 2 3
1 2 3
3 6 8

测试说明

平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。

样例输入:

3 3
1 2 3
4 5 6
7 8 9

样例输出:

Array[0][2]=3

下面上代码

#include<stdio.h>
int main()
{
    int m,n;//m行n列的矩阵 
    int Array[10][10];//定义一个矩阵 
    int i,j,b=0,c=0;
    scanf("%d %d",&m,&n);//输入行和列数 
    for(i=0;i<m;i++)//输入矩阵 
	{
        for(j=0;j<n;j++)
		{
            scanf("%d",&Array[i][j]);
        }
    }
    int max=0;//用于比较每行最大的值 
    int min=0;//用于比较每行中最小的值 
    for(i=0;i<m;i++)
    {
        max=Array[i][0];
        for(j=0;j<n;j++)//找出第i行最大值
        {
             
             if(Array[i][j]>max)
             {
                 max=Array[i][j];
                 b=j;//将最大值的列数赋值给b 
             }
        }
        min=Array[0][b];
        for(int k=0;k<m;k++)//找出每行最小值 
		{
		
            if(Array[k][b]<min)
            {
                min=Array[k][b];
                c=k;//将最小的行数赋值给c 
            }
        }
        if(min==max)//判断该点是否为鞍点 
	    {
            printf("Array[%d][%d]=%d",c,b,Array[c][b]);
            break;//if ture,输出鞍点 
        }
    }
    if(min!=max)//根据题目要求,没有鞍点输出None 
	{
    	printf("None");
	}
    return 0;
}

 输入

3 3

1 4 3

4 5 6

7 8 9

输出样例:

 有天赋的人不一定成功,但努力的人一定会成功。2023加油!

  • 36
    点赞
  • 202
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值