求一个二维数组的鞍点
//求一个二维数组的鞍点
#include<stdio.h>
int main()
{
int i,j,m,n,k,x,y;
int a[3][3]={
{3,2,1},{4,5,6},{7,8,9}};
int b[3];//用来存放的是三行的最大值
int c[3];//用来存放三列的最小值
for(i=0;i<3;i++)
{
m=a[i][0];
for(j=0;j<3;j++)
if(a[i][j]>m)
m=a[i][j]; //求出i行的最大值
b[i]=m;
}
printf("输出行的最大的值所在的数组:\n");
for(k=0;k<i;k++)
printf("%d\t",b[k]);//
for(j=0;j<3;j++)
{
n=a[0][j];
for(i=0;i<3;i++)
if(a[i][j]<n)
n=a[i][j]; //求出i行的最小值
c[j]=n;
}
printf("输出行的最小的值所在的数组:\n");
for(k=0;k<j;k++)
printf("%d\t",c[k]);//
printf("\n");
for(x=0,y=0;x<i,y<j;x++,y++)
{
if(b[x]==c[x])
printf("%d是鞍点\n",b[x]);
else
printf("这个数不是鞍点\n");
}
return 0;
}
以上程序纯属自己瞎写的,测试的结果最后一个有一点点问题吧。如果不是鞍点的话不好打印。
解释下什么是鞍点吧:鞍点指的是一个二维数组中的在这一行的最大值,在这一列反而是最小值,这样的数称为鞍点
还没有评论,来说两句吧...