出具有m行n列二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10。同一行和同一列没有相同的数。要求:
1)输入m和n,输入格式m*n;
2)输入m行每行n个整数。
3)查找鞍点。
4)如果找到鞍点,则输出该元素所在行、列和值,均采用“%d”格式输出(只需要找出第一个即可)。
5)如果找不到鞍点,则输出None。
提示:数组长度定义为[10][10],根据输入的m,n值使用前面的m行n列的元素。
文章来源地址https://www.toymoban.com/news/detail-755829.html
运行参考示例:
输入1:
3*4
1 2 9 4
5 4 7 2
6 3 8 5
输出1:
Array[1][2]=7
输入2:
4*5
1 2 9 4 6
5 4 7 2 8
6 3 8 1 5
3 1 4 5 7
输出2:
None
运行代码如下:
#include<stdio.h>
int main()
{
int a[10][10];
int i,j,k,t,p,m,n;
int max,min;
k=1;t=0;p=0;
scanf("%d*%d",&m,&n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
printf("\n");
}
for(i=0;i<m;i++)
{
max=a[i][0];//设该行第一个为最大,找出最大值
for(j=0;j<n;j++)
{
if(max<a[i][j])
{
max=a[i][j];
t=j;//用t记录该行最大的数的下标 (同样是该列的列数)
}
}
min=a[0][t];
for(k=0;k<m;k++)
{
if(min>a[k][t])//先定义该行最大的数为该列最小的数,看是否为鞍点
{
min=a[k][t];
p=k;//将最小的行数赋值给p
}
}
if(min==max)
{
printf("Array[%d][%d]=%d\n",p,t,a[p][t]);
break;
}
}
if(min!=max)
{
printf("None\n");
}
return 0;
}
文章来源:https://www.toymoban.com/news/detail-755829.html
到了这里,关于C语言 查找二维数组的鞍点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!