我下面的程序,有什么问题?请高手看一下。

来源:百度知道 编辑:UC知道 时间:2024/05/16 10:28:28
#include<stdio.h>
#include "math.h"
double area(double a,double b,double c);

void main()
{
double a,b,c,s;
scanf("%f%f%f",&a,&b,&c);
s=area(a,b,c);
printf("s=%f",s);
}
double area(double a,double b,double c)
{
double s,p;
if((a+b>c)&&(b+c>a)&&(a+c>b))
{
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
return s;
}

else printf("不能组成三角形");
}
还是不行啊,好像只执行else语句

如果不能组成三角形,你的函数area没有任何返回值,在主函数main里调用area的时候就会出错。
可以改成这样:
double area(double a,double b,double c)
{
.....
else return(-1);
}

void main()
{
.......
if(s>0)
{
printf("s=%f",s);
}
else printf("不能组成三角形");
}