根据海伦公式由三角形的三边长度a、b、c可以计算三角形面积。用C语言来做的,请问我的代码那里有错?

#include<stdio.h>
#include<math.h>
double a,b,c;
double triangle_area(double a, double b, double c);
int main()
{
printf("请输入三角形的3边之长:");
scanf("%f,%f,%f",&a,&b,&c);
double triangle_area(double, double, double);
printf("三角形面积S=%.1f\n",triangle_area);
return 0;
}
double triangle_area(double, double, double)
{
double p=(a+b+c)/2;
double triangle_area;
triangle_area=sqrt((p*(p-a)*(p-b)*(p-c)));
return triangle_area;
}

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

//定义了全局变量
double a,b,c;


//计算面积的函数申明
double triangle_area(double a, double b, double c);


int main()
{
    printf("请输入三角形的3边之长:");

    //输入的数据保存在全局变量中,但是变量是double类型的,所以%f显然是不行的
    //scanf("%f,%f,%f",&a,&b,&c);
    scanf("%lf,%lf,%lf",&a,&b,&c);

    //请问下面这句是干嘛的啊,干嘛的呀,前面已经申明了,还需要在main里边申明么?
    //哪本书上面有这么写过?
    //double triangle_area(double, double, double);

    //下面的函数调用让我大吃一惊,triangle_area是函数名?为毛不加括号???????
    //你这C的基础也太差了吧,跟谁学的??
    //printf("三角形面积S=%.1f\n",triangle_area);

    printf("三角形面积S=%.1f\n",triangle_area(a,b,c));
    return 0;
}

//计算面积函数实现,请问函数申明的时候都加了形参,为什么在实现的时候,不加形参啊?
//你确定这样能编译通过么?????
//double triangle_area(double, double, double)
double triangle_area(double a, double b, double c)
{
    double p=(a+b+c)/2;

    //变量名字还跟函数名字相同。。。。。
    double triangle_area;
    triangle_area=sqrt((p*(p-a)*(p-b)*(p-c)));
    return triangle_area;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-13
请改成

#include<stdio.h>
#include<math.h>
double a,b,c;
double triangle_area(double a, double b, double c);
int main()
{
printf("请输入三角形的3边之长:");
scanf("%lf,%lf,%lf",&a,&b,&c); //用lf不是f
double area=triangle_area(a, b, c);
printf("三角形面积S=%.1f\n",area);
return 0;
}
double triangle_area(double a, double b, double c)
{
double p=(a+b+c)/2;
double triangle_area;
triangle_area=sqrt((p*(p-a)*(p-b)*(p-c)));
return triangle_area;
}
输入的时候用
3,4,5
加上逗号本回答被网友采纳
第2个回答  2014-12-13
函数调用那里,输入double是%lf追问

试过了,还是一样

追答

你的函数调用,调了和没调一样
printf(".."triangle_aera(a,b,c));
还有scanf
想要空格输入的话

scanf("%lf %lf %lf");
你内个一定要这么输入才行
3,4,5 而不能3 4 5

相似回答