c语言数组鞍点的实验报告,c语言 求二维数组的鞍点

c语言 求二维数组的鞍点

答案:2  信息版本:手机版

解决时间 2019-10-07 01:12

已解决

2019-10-06 04:57

如图问题1、对于最后两个if语句不理解 为什么其判断条件要那么写?请解释!

问题2 变量k是做什么的?他和max_k,min_k,中的k有关系吗?

最佳答案

2019-10-06 05:51

for(i=0;i<3;i++)    //外层循环i是行标

{

max=a[i][0];    //定义max为该行最大元素的值,并初始化为该行首元

max_k=0;    //定义max_k为该行最大元素的列标,并初始化指向首元

for(j=1;j<3;j++)

{

if(a[i][j]>max)

{

max=a[i][j];

max_k=j;

}

}    //该循环结束后会找出i行最大元素的值max和下标max_k

min=a[0][max_k];    //定义min为第max_k列的最大值,并初始化为列首的值

min_k=0;    //定义min_k为第max_k列的最大值行标,并初始化指向列首

for(k=1;k<3;k++)

{

if(a[k][max_k]

{

min=a[k][max_k];

min_k=k;

}

}    //该循环结束后会找出第max_k列的最小元素的值min和行标min_k,循环计数器k代表行标

if(i==min_k)

{

flag=1;    //置鞍点存在标识为true

printf("在%2d行,%2d列,鞍点是:%f\n",min_k+1,max_k+1;a[min_k][max_k]); //输出鞍点

}

}

if(!flag)    //如果标识为false,则鞍点不存在

{

printf("找不到鞍点\n");

}

全部回答

1楼

2019-10-06 06:41

#include<stdio.h>

int main()

{

int a[4][5],i,j,i1,j1=0,max,s=1;

int i2;

for(i=0;i<=3;i++)

{

for(j=0;j<=4;j++)

scanf("%d",&a[i][j]);

}

printf("输入的数组:\n");

for(i=0;i<=3;i++)

{

for(j=0;j<=4;j++)

printf("%5d",a[i][j]);

printf("\n");

}

printf("\n");

for(i=0;i<=3;i++)

{

i1=i;

max=a[i1][j1];

for(j=1;j<=4;j++)

{

if(max<a[i][j])

{

max=a[i][j];

j1=j;

}

}

for(i2=0;i2<=3;i2++)

if(max>a[i2][j1])break;

if(i2>3)

{

printf("a[%d][%d]=%d\n",i1,j1,max);

s=0;

}

}

if(s)

printf("不存在鞍点.\n");

return 0;

}

说明:我定义了一个整形变量i2。

循环体里最好不要出现循环变量,因为随时会改变循环

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值