什么是鞍点?????
鞍点就是在一个二维数组中,某一个数在该行中最大,然而其在该列中又是最小的数,这样的数称为鞍点。
昨天突然在书上看到这样的一道题,就自己尝试着写了一个找出一个二维数组中的鞍点。
好了,废话不多说,代码奉上。。。。。。。。。。。。
/*这个程序检测的是一个二维数组中是否存在鞍点,
所谓的鞍点即是在这个二维数组中,某一个位置上的
元素在该行上最大,该列上最小*/
#include<stdio.h>
#define M 3
#define N 3 //定义行和列的大小 int main()
{
int a[M][N];
int i, j;
int temp = , temp1[M], temp2[N];
printf("请根据提示输入二维数组。\n");
//输入数组
for (i = ;i<M;i++)
for (j = ;j < N;j++)
{
printf("a[%d][%d]=", i, j);
scanf_s("%d", &a[i][j]);
}
//输出数组
for (i = ;i < M;i++)
{
for (j = ;j < N;j++)
printf("%d\t", a[i][j]);
printf("\n");
}
//处理数组
for (i = ;i < M;i++)
{
temp1[i] = a[i][]; //给每行的最大值赋一个初始值
temp2[i] = a[][i]; //给每列的最小值赋一个初始值
for (j = ;j < N;j++)
{
if (temp1[i] < a[i][j]) temp1[i] = a[i][j];
if (temp2[i] > a[j][i]) temp2[i] = a[j][i];
}
}
for (i = ;i < M;i++)
{
for (j = ;j < N;j++)
{
if (a[i][j] == temp1[i] && a[i][j] == temp2[j])
printf("这个二维数组的鞍点为%d\n", a[i][j]);
else
temp = ; }
}
if (temp == )
printf("这个数组中没有鞍点.\n");
}
还是一样的话,弄上本代码是为了和大家一起交流学习。
欢迎大家的讨论和提问。