subject_23556.htm

来自「一些关于vc的问答」· HTM 代码 · 共 18 行

HTM
18
字号
<p>
序号:23556 发表者:exoclease 发表日期:2002-12-05 02:01:06
<br>主题:请问这段函数代码那个地方出错拉
<br>内容:#include &lt;iostream.h&gt;<BR><BR>const int n = 5;&nbsp;&nbsp;&nbsp;&nbsp;//最多的方程数<BR><BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int i = 1;&nbsp;&nbsp;&nbsp;&nbsp;//行<BR>&nbsp;&nbsp;&nbsp;&nbsp;int j = 1;&nbsp;&nbsp;&nbsp;&nbsp;//列<BR>&nbsp;&nbsp;&nbsp;&nbsp;int k = 1;&nbsp;&nbsp;&nbsp;&nbsp;//<BR>&nbsp;&nbsp;&nbsp;&nbsp;float A[n][n];&nbsp;&nbsp; //系数<BR>&nbsp;&nbsp;&nbsp;&nbsp;float B[n];&nbsp;&nbsp;&nbsp;&nbsp; //B<BR>&nbsp;&nbsp;&nbsp;&nbsp;float detA = 1;&nbsp;&nbsp;&nbsp;&nbsp;//行列式A的值<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i = 1; i &lt;= n; i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //系数赋值<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (j = 1; j &lt;= n; j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[i][j] = (float)1/(i+j-1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B[i] = B[i]+(float)j/(i+j-1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;for (k=1; k&lt;=n; k++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;detA = detA * A[k][k];<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (j=1; j &lt;= n; j++)&nbsp;&nbsp;&nbsp;&nbsp; //对第k个方程进行演算<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (j != k)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[k][j] = A[k][j]/A[k][k];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B[k] = B[k]/A[k][k];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (i=1; i &lt;= n; i++)&nbsp;&nbsp;//对除第k个以外的方程进行演算<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (i != k)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (j=1; j &lt;= n; j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (j != k)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[i][j] = A[i][j]+A[i][k]*A[k][j];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B[i] = B[i]+A[i][k]*B[k];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[i][k] = A[i][k]/A[k][k];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;for (j=1; j &lt;= n; j++) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; j &lt;&lt; '\t';<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; '\t' &lt;&lt; "B[i]" &lt;&lt; '\n';<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;for (i=1; i &lt;= n; i++)&nbsp;&nbsp; //输出结果<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; i &lt;&lt; '\t';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (j=1; j &lt;= n; j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; A[i][j] &lt;&lt; '\t';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; '\t' &lt;&lt; B[i] &lt;&lt; '\n';<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; "detA = " &lt;&lt; detA &lt;&lt; '\n';<BR>}<BR><BR>这段函数代码执行后,显示对话框:“"0x00401245"指令引用的"0xf5463294"内存。该内存不能为"read".”那个地方出错。是不是数组初始化未成功?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:tjhe 回复日期:2002-12-05 02:12:23
<br>内容:数组元素访问时下标超界<BR>如:&nbsp;&nbsp;&nbsp;&nbsp;for(i = 1; i &lt;= n; i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //系数赋值<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (j = 1; j &lt;= n; j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<BR>应该为:<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i = 0; i &lt; n; i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //系数赋值<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (j = 0; j &lt; n; j++)<BR>其他还有几处类似的错误。<BR><BR>下表范围是[0,数组元素个数-1]
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Norton AntiVirus 回复日期:2002-12-05 08:34:19
<br>内容:将所有循环的计数器从零开始<BR><BR>如:<BR><BR>for(int i = 0; i &lt; n; i ++){}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?