C++ 程序运行结束后提示程序已停止工作
附上全部代码,求高手帮忙,谢谢!用的WIN7系统,VC++6.0当输出完perimeter的值后弹出窗口显示XXX.exe已停止工作,请问是程序编写的问题还是计算机的问题...
附上全部代码,求高手帮忙,谢谢!
用的WIN7系统,VC++6.0
当输出完perimeter的值后弹出窗口显示XXX.exe已停止工作,请问是程序编写的问题还是计算机的问题?
#include <stdio.h>
#include <math.h>
int main(void)
{
double a[3],s,area,perimeter;
int i;
printf("Please enter three sides of a triangle in sequence:\n");
for(i=1;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]),0.5);
perimeter=a[1]+a[2]+a[3];
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;
} 展开
用的WIN7系统,VC++6.0
当输出完perimeter的值后弹出窗口显示XXX.exe已停止工作,请问是程序编写的问题还是计算机的问题?
#include <stdio.h>
#include <math.h>
int main(void)
{
double a[3],s,area,perimeter;
int i;
printf("Please enter three sides of a triangle in sequence:\n");
for(i=1;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]),0.5);
perimeter=a[1]+a[2]+a[3];
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;
} 展开
1个回答
展开全部
#include <stdio.h>
#include <math.h>
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]),0.5);
// 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]),0.5);
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;
}
运行结果:
追问
谢谢!不会再报错了!可不可以请问一下这是什么原理?
追答
我不是写了注释吗?就怕你不理解,特意写的。
数组下标是从零开始的,而不是1开始的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询