标题:
c语言二维数组中的鞍点
[打印本页]
作者:
liuda
时间:
2015-1-22 02:27
标题:
c语言二维数组中的鞍点
//二维数组中的鞍点,行中最大,列中最小,也可能没有鞍点
#include<stdio.h>
void main()
{
//首先输入一个二维数组
//这个二维数组是任意阶数的
int m;//数组的阶数
int a[20][20];
int i,j;//数组的坐标
int t;//每一行当前最大值存放变量
int p,q;//存放最大值坐标的变量
int l=0;//累计列中比当前值大的数的数量
int k;//为了防止最外层的i被破坏,引进一个新的变量
int n=0;//累计所有鞍点的个数
printf("please input order and then input elements:\n");
scanf("%d",&m);
for(i=0;i<m-1;i++)
{
for(j=0;j<=m-1;j++)
{
scanf("%d",&a[i][j]);
}
}
//现在材料有了,该处理数据了
//我想先从第一行开始,找到最大的,再确定是否是该列最小的,如果是,阶数循环,输出该数及该数坐标
//如果不是,继续从下一行找
for(i=0;i<=m-1;i++)
{
t=a[i][0];
for(j=0;j<=m-1;j++)
{
if(a[i][j]>=t)
{
t=a[i][j];
p=i;
q=j;//现在t里面存放当前行里面的最大值,pq中存放着他的坐标
}
}
for(k=0;k<=m-1;k++)//在当前列中寻找是否有比他大的,++not--
{
if(a[k][q]>=t)
{
l+=1;
}
}
if(l==m-1)
{ n=n+1;
printf("%3d,%3d\n",p,q);}
l=0;//变量l清零,为下一次做准备
}
if(n>0)
printf(" exists a saddle point\n");
else
printf("does not exist a saddle point\n");
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1