C语言 自定义函数找出二维矩阵的鞍点,如果没有鞍点打印相应信息
自定义函数找出二维矩阵的鞍点,如果没有鞍点打印相应信息
2020-12-08 22:32
程序代码:#include <stdio.h>
#define M 3 //最大接收M行N列的数组,这里是10*10,可修改。
#define N 3
int main()
{
int a[M][N], b[N];
int i, j, k, s = 0, max, min, count = 0;
printf("输入数组元素:");
for (i = 0;i < M;i++) // 输入数组
{
for (j = 0;j < N;j++)
{
scanf("%d", &a[i][j]);
}
}
// 打印数组
for (i = 0;i < M;i++)
{
for (j = 0;j < N;j++)
{
printf("%5d", a[i][j]);
}
printf("\n");
}
//查找判断鞍点
for (i = 0;i < M;i++)
{
max = a[i][0];
for (j = 0;j < N;j++) // 找第i行最大值
if(a[i][j] > max)
max = a[i][j];
s = 0;
for (j = 0;j < N;j++) //将最大值所在的列存入数组b[s]中
if(a[i][j] = max)
{
b[s] = j;
s++; //s的值就是最大值的个数
}
min = max;
for (i = 0;i < s;i++) //有几个最大值循环判断几次
{
for (k = 0;k < M;k++) //判断这个行最大值是不是列最小
{
if (min > a[k][b[i]])
{
break;
}
}
if (k == M) //输出,count为鞍点个数
printf("鞍点为第%d行第%d列的%d\n", j + 1, b[i] + 1, a[j][b[i]]);
count++;
}
}
printf("该二维数组没有鞍点\n");
}
2020-12-08 23:42
2020-12-08 23:48