这个是你程序的问题,不是编译通过程序就是对的,最著名的就是指针的段错误,编译通过,运行报错的。 举个简单的例子 #include int main() { int a[2]; a[2]=10; } 这个程序就是你遇到的情况,可以运行试试!数组越界了。
1·老式程序(黑屏),Ctrl+C停止
2·直接右上角X掉
3·任务管理器,强制关闭进程。
当然,如果程序里面停止,只需要在你的while里面加上:if(){break;}
我认为是代码的问题。
我用的也是vc6,中文绿色版,Win7,64位的系统。从来没出现由于软件不兼容导致程序停止运行的问题。
用该VC60编过小程序,也编过一个程序几千行的代码,有出现过某某exe已停止工作的问题。
从来都是代码的问题。
有可能是读写了非法内存。有可能是控件(比如窗口之类的),信号之类的。
中文版本并不妨事儿,没有中文路径就和英文的一样了。
(以上个人观点,仅供参考。)
这个时候就要用调试,来解决问题,只要调试运行到报错的位置,就可以知道是哪段代码有问题了。你用的是QT还是VC?如果是VC,Ctrl+F10是运行到光标处。F9是设置断点。
如果是QT,左边有个Debug按钮,就是那只虫,点击,即可。
#include <stdioh>
#include <mathh>
int main(void)
{
double a[3],s,area,perimeter;
int i;
printf("Please enter three sides of a triangle in sequence:\n");
// 数组下标是从0开始的
// for(i=1;i<=3;i++){
for(i=0; i<3; i++){
scanf("%lf",&a[i]);
}
//if((a[1]+a[2]>a[3])&&(a[2]+a[3]>a[1])&&(a[1]+a[3]>a[2])){
// s=(a[1]+a[2]+a[3])/2;
// area=pow(s(s-a[1])(s-a[2])(s-a[3]),05);
// perimeter=a[1]+a[2]+a[3];
if((a[0]+a[1]>a[2])&&(a[1]+a[2]>a[0])&&(a[0]+a[2]>a[1])){
s=(a[1]+a[2]+a[0])/2;
area=pow(s(s-a[1])(s-a[2])(s-a[0]),05);
perimeter=a[1]+a[2]+a[0];
printf("The area is %2f\nThe perimeter is %2f\n",area,perimeter);
}
else{
printf("These sides don't correspond to a valid triangle!\n");
}
return 0;
}
运行结果:
要在Debug的时候才可以的,你可以先在你想要停止的地方按F9设置一个 断点 然后按F5开始调试,当程序运行到你设置断点的地方就会自动停止运行,你可能观察当时各变量的值,查出某些问题!
以上就是关于VC++6.0运行程序停止工作!全部的内容,包括:VC++6.0运行程序停止工作!、在vc++中运行程序,但是程序停不下来怎么办有什么手动的方法控制让它停止么、用visualc++写c语言程序,编译通过,执行时软件停止工作,为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)