⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_57316.htm

📁 vc
💻 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 &#34;stdafx.h&#34;<BR>#include &#34;iostream.h&#34;<BR>#define M 3<BR>#define N 3<BR>typedef struct<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int x;//对应于m行n列<BR>&nbsp;&nbsp;&nbsp;&nbsp;int y;<BR>}Size;<BR><BR><BR>int shuzu[M][N]={<BR>&nbsp;&nbsp;&nbsp;&nbsp;{3,43,47},<BR>&nbsp;&nbsp;&nbsp;&nbsp;{9,9,15},<BR>&nbsp;&nbsp;&nbsp;&nbsp;{45,2,45}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<BR>//这个程序中有这样的错误,如将数组(1,1)的9改成15,则会提示找不到鞍点。而此时是应该有鞍点的。<BR>Size FindLineMax(int line);//寻找一行中最大的元素,返回该元素的下标。<BR>bool FindColumnMin(Size size);//寻找一列中最小的元素,返回真或假<BR>int main(int argc, char* argv[])<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;Size size;<BR>&nbsp;&nbsp;&nbsp;&nbsp;bool Flag=false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;M;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size=FindLineMax(i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Flag=FindColumnMin(size);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(Flag)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int m,n;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m=size.x;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n=size.y;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;&#34;shuzu[&#34;&lt;&lt;m&lt;&lt;&#34;][&#34;&lt;&lt;n&lt;&lt;&#34;]=&#34;&lt;&lt;shuzu[m][n]&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR> cout&lt;&lt;&#34;Not found&#34;&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR><BR>Size FindLineMax(int line)//m行n列<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int x=line;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int y=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int Max=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;N;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(shuzu[x][i]&gt;Max)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Max=shuzu[x][i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y=i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;Size size;<BR>&nbsp;&nbsp;&nbsp;&nbsp;size.x=x;//X,Y代表M,N<BR>&nbsp;&nbsp;&nbsp;&nbsp;size.y=y;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return size;<BR>}<BR>bool FindColumnMin(Size size)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int x=size.x;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int y=size.y;<BR>&nbsp;&nbsp;&nbsp;&nbsp;bool Flag=true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(int j=0;j&lt;N;j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(shuzu[x][y]&gt;shuzu[j][y])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Flag=false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;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 + -