📄 subject_29090.htm
字号:
<p>
序号:29090 发表者:小杰XP 发表日期:2003-01-28 20:36:49
<br>主题:初学者求救!!!
<br>内容:以下是书上的例题,书上说把ncow定义为int ncow[20]会出现问题,但我试了,还是一样,不知道是我错了,还是书上说的不对。<BR>#include <stdio.h><BR>viod main()<BR>{<BR> int i,ncow[20+1];<BR> ncow[1]=2;<BR> ncow[2]=3;<BR> ncow[3]=4;<BR> for(i=4;i<=20;++i)<BR> ncow[i]=ncow[i-1]+ncow[i-3];<BR> for(i=1;i<=20;++i){<BR> printf("%12d",ncow[i]);<BR> if(i%5==0)<BR> printf("\n");<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>
回复者:吴澄埃 回复日期:2003-01-28 21:40:46
<br>内容:书上说的对!<BR>把ncow定义为int ncow[20+1]<BR>运行所的结果为:<BR>2 3 4 6 9<BR>13 19 28 41 60<BR>88 129 189 277 406<BR>595 872 1278 1873 2745<BR><BR>把ncow定义为int ncow[20]<BR>运行所的结果为:<BR>2 3 4 6 9<BR>13 19 28 41 60<BR>88 129 189 277 406<BR>595 872 1278 1873 20<BR><BR>问题出在最后一个数!<BR><BR>因为ncow[20+1]是ncow[0]~ncow[20]这二十一个数<BR> 而ncow[20]是ncow[0]~ncow[19]这二十个数<BR><BR>当把ncow定义为int ncow[20+1]时,即ncow[20+1]是ncow[0]~ncow[20]这二十一个数,它的后二十个。<BR> for(i=4;i<=20;++i)<BR> ncow[i]=ncow[i-1]+ncow[i-3];<BR> for(i=1;i<=20;++i)<BR> {<BR> printf("%12d",ncow[i]);<BR> if(i%5==0)<BR> printf("\n");<BR> }<BR><BR>当把ncow定义为int ncow[20]时,即ncow[20]是ncow[0]~ncow[19]这二十个数,它的后二十个,而最后一个根本就没有在ncow[20]定义之内<BR> for(i=4;i<=20;++i)<BR> ncow[i]=ncow[i-1]+ncow[i-3]; //最后一个根本就没有在ncow[20]定义之内<BR> for(i=1;i<=20;++i)<BR> {<BR> printf("%12d",ncow[i]);<BR> if(i%5==0)<BR> printf("\n");<BR> }<BR><BR>明白了吧?呵呵,给分:)<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>
<font color=red>答案被接受</font><br>回复者:吴澄埃 回复日期:2003-01-28 22:10:41
<br>内容:再补充:<BR>定义一个array[?],是从array[0]存储开始的,所以<BR>ncow[20+1] 是定义ncow[i]的个数为21个,ncow[0]~ncow[20].<BR>ncow[20] 是定义nocw[i]的个数为20个,ncow[0]~ncow[19].<BR><BR> for(i=4;i<=20;++i)<BR> ncow[i]=ncow[i-1]+ncow[i-3]; <BR>当i=20时(在定义为ncow[20],根本就不在定义范围内!)<BR><BR> for(i=1;i<=20;++i)<BR> {<BR> printf("%12d",ncow[i]);<BR> if(i%5==0)<BR> printf("\n");<BR> }<BR> 既然前面当i=20时(在定义为ncow[20],根本就不在定义范围内!),所以显示ncow[i]当然错罗.<BR><BR> 只可以定义的数组比它的总个数大,如果int ncow[20+2]也是得到正确答案! 真的明白了吗? 记得给分. 哈哈 :)<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>
回复者:龙龙 回复日期:2003-01-28 23:40:16
<br>内容:哈哈楼上老兄好会说话,解释挺长的嘛。
<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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -