本文主要是介绍1198鞍点计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
找出具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10。
输入
输入数据有多行,第一行有两个数m和n,下面有m行,每行有n个数。
输出
按下列格式输出鞍点:
Array[i][j]=x
其中,x代表鞍点,i和j为鞍点所在的数组行和列下标,我们规定数组下标从0开始。
一个二维数组并不一定存在鞍点,此时请输出None。
我们保证不会出现两个鞍点的情况,比如:
3 3
1 2 3
1 2 3
3 6 8
Array[i][j]=x
其中,x代表鞍点,i和j为鞍点所在的数组行和列下标,我们规定数组下标从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 a[11][11],m,n,i,j,max,e,d,l,b,c;
scanf("%d %d",&n,&m);
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];
for(j=0;j<m;j++)
{
if(a[i][j]>max)
{max=a[i][j];d=j;e=i;}
}
b=0;
for(l=0;l<n;l++)
{
if(a[l][d]<a[e][d])
b=1;
continue;
}
if(b==0)
{printf("Array[%d][%d]=%d",e,d,max);break;}
}
if(b==1)
printf("None");
printf("\n");
return 0;
}
int main()
{
int a[11][11],m,n,i,j,max,e,d,l,b,c;
scanf("%d %d",&n,&m);
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];
for(j=0;j<m;j++)
{
if(a[i][j]>max)
{max=a[i][j];d=j;e=i;}
}
b=0;
for(l=0;l<n;l++)
{
if(a[l][d]<a[e][d])
b=1;
continue;
}
if(b==0)
{printf("Array[%d][%d]=%d",e,d,max);break;}
}
if(b==1)
printf("None");
printf("\n");
return 0;
}
这篇关于1198鞍点计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!