原创 习题 6.8 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。
2017-08-30 21:04:15
Navigator_Z
阅读数 9122
收藏
更多
分类专栏:
C程序设计 (第四版) 谭浩强 课后答案
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/navicheung/article/details/77725609
C程序设计(第四版) 谭浩强 习题6.8 个人设计
习题6.8 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。
代码块
方法1:
#include <stdio.h>
int main()
{
int a[3][3];
int i, j, k, p, q, max, min;
for (i=0; i<3; i++){
for (j=0; j<3; j++)
scanf("%d", &a[i][j]); //输入数组
}
for (i=0; i<3; i++){
for (j=0, max=0, p=0; j<3; j++){ //判断出该行元素的最大值
if (a[i][j]>max){
max=a[i][j];
p=j;
}
else{
max=max;
p=p;
}
}
for (k=0, min=a[i][p], q=i; k<3; k++){ //判断最大值在该列是否为最小值
if (a[k][p]<min){
min=a[k][p];
q=k;
}
else{
min=min;
q=q;
}
}
if (iq){
printf("%d is the saddle point!\n", a[i][p]); //如果该最大值行号没有改变,输出鞍点
break;
}
}
if (i3 && i!=q)
printf(“There is no saddle point!\n”); //输出没有鞍点
return 0;
}