搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一个求二维数组鞍点的错误
标题:
一个求二维数组鞍点的错误
只看楼主
jhosua
等 级:
新手上路
帖 子:43
专家分:0
注 册:2005-12-31
楼主
问题点数:0 回复次数:5
一个求二维数组鞍点的错误
#include<stdio.h>
{
int a[3][4],i,j,flag,max,p,k;
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=2;i++)
{
max=a[i][0];
p=0;
for(j=1;j<=3;j++)
if(max<a[i][j])
{max=a[i][j];
p=j;}
else
p=0;
flag=1;
for(k=0;k<=2;k++)
if(max>a[k][p])
{flag=0;
continue;}
if(flag)
{printf("\n a[%d][%d]=%d",i,p,max);
break;}
}
if(!flag)
printf("no exist");
getch();}
这个是求二维数组鞍点的程序 本身是没有问题的 运行正常 但是偶试着把红色部分去掉 留下蓝色的 这个程序就无法得出正确结果(仍然是可以编译和运行的)无论输入什么样的数组 都显示无鞍点
按照我个人想法即使是去掉红色 保留蓝色 仍然是可以求出本行最大的数 以及正确纪录下标 虽然我自己无意中改正了 实在想不透 请求前辈们指点
搜索更多相关主题的帖子:
鞍点
flag
int
include
stdio
2006-07-15 20:06
穆扬
等 级:
禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
第
2
楼
得分:0
提示:
作者被禁止或删除 内容自动屏蔽
2006-07-15 20:57
nuciewth
来 自:我爱龙龙
等 级:
贵宾
威 望:
104
帖 子:9786
专家分:208
注 册:2006-5-23
第
3
楼
得分:0
这是当然的,你想想每次运行时,假如存在if(max<a[i][j])不成立那么以前得到的最大值就得被0覆盖了
你说以后会有鞍点吗.
倚天照海花无数,流水高山心自知。
2006-07-15 20:58
nuciewth
来 自:我爱龙龙
等 级:
贵宾
威 望:
104
帖 子:9786
专家分:208
注 册:2006-5-23
第
4
楼
得分:0
所谓鞍点就是即是该行又是该列中的最大值.
你的程序是首先找行中的最大值,然后判断该值是否也是该列中的最大值,若是则是鞍点,否则不是鞍点.
每找到一个鞍点就输出,如此循环3次,最后用flag 判断数组中是否有鞍点的存在.
倚天照海花无数,流水高山心自知。
2006-07-15 21:04
jhosua
等 级:
新手上路
帖 子:43
专家分:0
注 册:2005-12-31
第
5
楼
得分:0
谢谢jxnu 偶想明白了 假如在某1行中的 数 是大小交叉的话 是找不出本行最大的数的 只要出现1次 后面的数 比前面的小 必定被0覆盖了 当第一行 第一列那个数是鞍点 运行后才会输出结果
2006-07-16 19:00
nuciewth
来 自:我爱龙龙
等 级:
贵宾
威 望:
104
帖 子:9786
专家分:208
注 册:2006-5-23
第
6
楼
得分:0
麻烦楼上的。jxnu是我的学校。
呵呵,不用客气。
倚天照海花无数,流水高山心自知。
2006-07-17 11:37
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-78520-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 2.315648 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved