📄 subject_57316.htm
字号:
<p>
序号:57316 发表者:最后一根稻草 发表日期:2003-10-24 13:27:06
<br>主题:一个寻找鞍点的算法
<br>内容:网友告诉我的,现在已基本做出来了,不完善,我觉得这样的结构有利于理解,所以不想要太大的改动,请高手指点,小改一下,使程序正常。<BR>// 寻鞍点.cpp : Defines the entry point for the console application.<BR>//指出一个二维数组中的鞍点,<BR>//即该位置上的元素在该行最大,<BR>//该列最小,也肯能没有鞍点<BR>#include "stdafx.h"<BR>#include "iostream.h"<BR>#define M 3<BR>#define N 3<BR>typedef struct<BR>{<BR> int x;//对应于m行n列<BR> int y;<BR>}Size;<BR><BR><BR>int shuzu[M][N]={<BR> {3,43,47},<BR> {9,9,15},<BR> {45,2,45}<BR> };<BR>//这个程序中有这样的错误,如将数组(1,1)的9改成15,则会提示找不到鞍点。而此时是应该有鞍点的。<BR>Size FindLineMax(int line);//寻找一行中最大的元素,返回该元素的下标。<BR>bool FindColumnMin(Size size);//寻找一列中最小的元素,返回真或假<BR>int main(int argc, char* argv[])<BR>{<BR> Size size;<BR> bool Flag=false;<BR> for(int i=0;i<M;i++)<BR> {<BR> size=FindLineMax(i);<BR> <BR> Flag=FindColumnMin(size);<BR> if(Flag)<BR> {<BR> int m,n;<BR> m=size.x;<BR> n=size.y;<BR> cout<<"shuzu["<<m<<"]["<<n<<"]="<<shuzu[m][n]<<endl;<BR> return 0;<BR> }<BR> }<BR> cout<<"Not found"<<endl;<BR> return 0;<BR>}<BR><BR>Size FindLineMax(int line)//m行n列<BR>{<BR> int x=line;<BR> int y=0;<BR> int Max=0;<BR> for(int i=0;i<N;i++)<BR> {<BR> if(shuzu[x][i]>Max)<BR> {<BR> Max=shuzu[x][i];<BR> y=i;<BR> }<BR> }<BR> Size size;<BR> size.x=x;//X,Y代表M,N<BR> size.y=y;<BR> return size;<BR>}<BR>bool FindColumnMin(Size size)<BR>{<BR> int x=size.x;<BR> int y=size.y;<BR> bool Flag=true;<BR> for(int j=0;j<N;j++)<BR> {<BR> if(shuzu[x][y]>shuzu[j][y])<BR> Flag=false;<BR> }<BR> return Flag;<BR>}<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:ljl 回复日期:2003-10-24 14:05:09
<br>内容:嗯,这样更专业一些,学习了:)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:学vc 回复日期:2003-10-25 10:09:03
<br>内容:1。你没有考虑数组元素为负的情况。<BR>2。你没有考虑元素相等的情况,即某行可以有几个最大值,某列可以有几个最小值。<BR><BR>2003-10-25 10:14:21
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -