我的程序为什么总是意外停止?
源代码是这样的,这就是计算那个斐波拉契数列:#include <stdio.h>
void main()
{
int a={1,1};
int n;
for(n=2;n<=20;n++)
{
a=a+a;
}
for(n=0;n<20;n++)
{
printf("%d ",a);
}
printf("\n");
}
如图:
然后就正常显示了,不知道为什么呢??怎么会这样子。
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\1149856626\QQ\WinTemp\RichOle\DNQ1JHBV_O~}66PHER4OJ_W.jpg
因为你的名字不行,88....... oggplay 发表于 2014-2-20 14:52 static/image/common/back.gif
因为你的名字不行,88.......
我其他的按照日期命名的都可以正常运行啊比如20140219等等 oggplay 发表于 2014-2-20 14:52 static/image/common/back.gif
因为你的名字不行,88.......
改了名字还是不行!!
阿波罗2014 发表于 2014-2-20 15:15 static/image/common/back.gif
数组越界了
for(n=2;n
明白了 ,谢谢了哈 路过看看= =! 很明显的,定义的数组a,第一次循环的时候越界了,程序不挂才怪呢。 数组访问越界了,C语言数组的启示下标是0,最后一个元素的下标是N-1(N为数组的长度)
for(n=2;n<=20;n++) 这里就有问题,n<=20 也就是说n=20的时候还要访问数组,你的数组长度是 20
有效的下标是0-19,楼主改成这样就可以了for(n=2;n<20;n++)
完整代码:
#include <stdio.h>
void main()
{
int a={1,1};
int n;
for(n=2;n<20;n++)
{
a=a+a;
}
for(n=0;n<20;n++)
{
printf("%d ",a);
}
printf("\n");
}
哈,给一个最佳!!!:big:big 一般这种停止要么是数组越界,,要么就是指针没有初始化就使用。。 无名侠 发表于 2014-2-20 19:36 static/image/common/back.gif
数组访问越界了,C语言数组的启示下标是0,最后一个元素的下标是N-1(N为数组的长度)
for(n=2;n
感谢版主讲的这么详细,完全理解了。 无名侠 发表于 2014-2-20 19:36 static/image/common/back.gif
数组访问越界了,C语言数组的启示下标是0,最后一个元素的下标是N-1(N为数组的长度)
for(n=2;n
怎么给最佳啊??? 我不会 zhaopengfei 发表于 2014-2-20 20:41 static/image/common/back.gif
怎么给最佳啊??? 我不会
我的帖子里面的右下角。 无名侠 发表于 2014-2-20 21:39 static/image/common/back.gif
我的帖子里面的右下角。
没有啊都是些道具卡。 zhaopengfei 发表于 2014-2-20 21:46 static/image/common/back.gif
没有啊都是些道具卡。
在你认为最佳的回帖的右下角哈~ 小甲鱼 发表于 2014-2-20 21:52 static/image/common/back.gif
在你认为最佳的回帖的右下角哈~
可是,我的回帖的右下角只有: 使用道具评分举报这三个选项,木有设置为最佳答案呐。 zhaopengfei 发表于 2014-2-20 23:39 static/image/common/back.gif
可是,我的回帖的右下角只有: 使用道具评分举报这三个选项,木有设置为最佳答案呐。
发悬赏帖才有的~ 小甲鱼 发表于 2014-2-21 18:17 static/image/common/back.gif
发悬赏帖才有的~
怪不得别人说了我怎么都找不到。
页:
[1]