求助:一个C语言编程的菜鸟问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 21:02:59
小弟刚学C语言,编了一个求三角形面积的东西,如下
#include<stdio.h>
#include<math.h>
main()
{

float a,b,c,p,s;
printf("Input a,b,c:");
scanf("%f,%f,%f",a,b,c);
if(fabs(a-b)>=c) printf("Wrong data!");
else if(fabs(a-c)>=b) printf("Wrong data!");
else if(fabs(b-c)>=a) printf("Wrong data!");
else

{p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("The result is %f",s);

}

}

调试的时候没有发现错误,但是执行的时候系统提示应用程序错误,"0x00405c12"指令引用的"0x80000000"内存.该内存不能为written".
不知道为什么啊!
请详细指出错误,我才刚学啊!

#include<stdio.h>
#include<math.h>

void main()
{
float a,b,c,p,s; //这里用double比较好
printf("Input a,b,c:\n");
scanf("%f%f%f",&a,&b,&c); //scanf把三个double型的变量输送到a,b,c的地址,故用取地址符&

//以下代码帮你重新写过,因为你写的比较乱。。。
if(a>0.0 && b>0.0 && c>0.0 && fabs(a-b) < c && fabs(b-c) < a && fabs(a-c) <b)
{
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("The result is %f\n",s);
}
else
printf("Data error!\n");

}

scanf("%f,%f,%f",&a,&b,&c);
这个读入错误,另外你的程序很乱是错误的

这是我以前写的一个程序,有机会大家一起学习
VC6可以通过,你试试:
#include <iostream.h>
#include <math.h>
double trianglearea(double x,double y,double z)
{
double temp,area;
temp=(x+y+z)/2;
area=sqrt(temp*(temp-x)*(temp-y)*(temp-z));
return area;
}
void main()
{
doub