| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1227 人关注过本帖
标题:一个求二维数组鞍点的错误
只看楼主 加入收藏
jhosua
Rank: 1
等 级:新手上路
帖 子: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
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-15 20:57
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
这是当然的,你想想每次运行时,假如存在if(max<a[i][j])不成立那么以前得到的最大值就得被0覆盖了
你说以后会有鞍点吗.

倚天照海花无数,流水高山心自知。
2006-07-15 20:58
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
所谓鞍点就是即是该行又是该列中的最大值.
你的程序是首先找行中的最大值,然后判断该值是否也是该列中的最大值,若是则是鞍点,否则不是鞍点.
每找到一个鞍点就输出,如此循环3次,最后用flag 判断数组中是否有鞍点的存在.

倚天照海花无数,流水高山心自知。
2006-07-15 21:04
jhosua
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2005-12-31
收藏
得分:0 
谢谢jxnu 偶想明白了 假如在某1行中的 数 是大小交叉的话 是找不出本行最大的数的 只要出现1次 后面的数 比前面的小 必定被0覆盖了 当第一行 第一列那个数是鞍点 运行后才会输出结果  

2006-07-16 19:00
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
麻烦楼上的。jxnu是我的学校。
呵呵,不用客气。

倚天照海花无数,流水高山心自知。
2006-07-17 11:37
快速回复:一个求二维数组鞍点的错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015913 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved