为什么C语言程序运行时出现exe停止工作,但可以输出结果,用的是vc6

#include<stdio.h>
void main()
{
long int r[39];
int i,j;
r[0]=2;
r[1]=2;
for(i=2;i<=39;i++)
{
r[i]=r[i-1]+r[i-2];
}
for(j=1;j<=40;j++)
{
printf("r[%d]=%12ld\n",j,r[j-1]);
}
}

数组越界了,你定义 数组 long int r[39];表示该数组元素个数为39个,数组下标是从0开始算起的,也就是说r[0] 为第一个元素,地39个元素应该是r[38], 所以你检查一下自己的程序,看看是不是两个循环里面都会出现,r[39]的情况?r[39]表示第40个元素,数组越界,程序就崩溃了,所以才出现exe停止运行。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-10-13
定义r[39],实际最后一个数组值是r[38],循环中r[i]当i=39时数组越界。

为什么C语言程序运行时出现exe停止工作,但可以输出结果,用的是vc6...
你定义 数组 long int r[39];表示该数组元素个数为39个,数组下标是从0开始算起的,也就是说r[0] 为第一个元素,地39个元素应该是r[38], 所以你检查一下自己的程序,看看是不是两个循环里面都会出现,r[39]的情况?r[39]表示第40个元素,数组越界,程序就崩溃了,所以才出现exe停止运行...

我用vs2013编写c语言为什么会一闪而退,而用vc6.0就不会
不要用F5直接运行,选择菜单栏“调试”下面的"Start without Debugging"(Ctrl +F5),可以查看结果。F5直接运行就会运行到程序结束,控制台就自动关闭了。If you want to see the result of you program,you should choose"Start without Debugging",the shortcut key is "ctrl+F5",then you can s...

用vc6.0运行程序,提示 .exe已停止工作
改成 scanf("%d,%d“, &n, &m);

...但是运行的结果却不是正确的 我用的是VC6 写的C语言
没语法错误,有逻辑错误,特别是指针容易用错。

c语言程序运行完后怎样停在显示窗口,我写的程序如下。但运行VC6.0生成...
在vc环境下可以观看程序运行结果,在wintc下如果想观看程序运行结果的话,在main程序最后增加一条语句getch();即可。

C语言 vc6.0 显示 .exe停止工作 取了一部分程序大神帮我看一下程序有...
include<stdio.h>#include<stdlib.h>main(){int i,j,x,a[5][6];for(i=0;i<5;i++)for(j=0;j<6;j++) \/\/这里应该是j<6,不是i<6{do{x=rand()%41; a[i][j]=x; } while( a[i][j]<10 );}for(i=0;i<5;i++){for(j=0;j<6;j++)printf("%4d",a[i]...

C语言结果对了,但是VC6.0++运行结束后 arr.exe已停止工作???
最好把main函数写成这样的形式:int main(){ matrix();return 0;}

C语言程序编译老是CL.exe错误 怎么回事
1、一般这个问题都是在win7和vista下面用VC6的问题,尝试下面几种方法,如果不行,就重新找一个VC版本吧2、具体步凑:一: “CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目 录 \/VC98\/Bin”下面,可以到相应的路径下找到这个应用程序。因此问题可以按照以下方法解决:打开vc界面 ...

VC6.0C语言调试时怎么一闪就没了 但是程序对了 这样会不会有问题呢...
看你调试的程序是哪一类型的,有的运行结果有输出,有的没有。前者有运行结果窗口,后者则一闪而过

怎么解决VC6.0出现的Error spawning cl.exe错误
1、VC6.0编号一个c语言程序后,当要编译或者构建的时候会出现Error spawning cl.exe错误,这种情况通常都是因为路径问题导致的。这个问题不需要卸载重新安装,我们先查找到安装的具体路径。2、打开vc++6.0 tools-options-Directories,从Executable files开始修改 。3、黄线框起来的部分就是需要更改的 ...

相似回答