编写一个fun函数功能是根据给定的三角形三条边长abc求三角形的面积

#include <stdio.h>
#include <math.h>
float fun();
void main()
{
float a,b,c,s;
printf("Please enter a b c:");
scanf("%f%f%f",&a,&b,&c);
if ((a+b>c)&&(a+c>b)&&(b+c>a))
{
s=fun(a,b,c);
printf("%f\n",s);
}

}
float fun(float a,float b,float c)
{
float p,s;
printf("%f\n%f\n%f\n",a,b,c);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
return s;
}

我的程序不知道哪里出问题了,
在fun函数中,a,b,c的值都不正确的!!!
为什么???

double sabc(double a, double b, double c)
{
double p,s;

p=(a+b+c)/2;
s=squrt(p*(p-a)*(p-b)*(p-c));
return s;
}

%let a=1;
%let b=1;

%let c=1;
data a;

if &a le 0 or &b le 0 or &c le 0 or &a+&b le &c or &b+&c le &a or &a+&c le &b then;
s=0;

p=(&a+&b+&c)/2;
s=sqrt(p*(p-&a)*(p-&b)*(p-&c));
put。



扩展资料:

它是指用fun来定义一个函数(或方法),这样在引用时可以用fun表示。比如int fun(int x,int y),void fun(char* a,char* b) 等等。有先前的定义,就可以在主函数里调用它,比如ans=fun(3,7);或者fun(p1,p2);。

fun函数是自定义函数。fun一词没有其它意思,只是在调用时用这个单词表示该函数。fun函数是自定义函数,是使用来举例或作语法演示的,需要在使用前自行定义声明。

fun一词没什么特别含义,也可以换成别的名称,如"abc"或者"baidubaike"。它只表示引用之前出现的函数,以调用它执行一些需求,int fun(int x,int y)只是一个举例的函数名而已,以及其声明的参数类型。

参考资料来源:百度百科-fun函数

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-07-27
把下面的代码,复制试试,自己在调整一下,百度还是有点问题
#include <stdio.h>
#include <math.h>
//float fun(); 声明的位置不对,声明的时候必须要有形参参数(可以只写形参的类型,比如float)

void main()
{
float fun(float a, float b, float c); //因为你自定义的函数fun ,在main函数之后定义所以要提前声明,这个生命必须放在main里面
float a, b, c, s;
printf("Please enter a b c:");
scanf("%f%f%f", &a, &b, &c);
if ((a + b>c) && (a + c>b) && (b + c>a))
{
s = fun(a, b, c);
printf("%f\n", s);
}
}
float fun(float a, float b, float c)
{
float p, s;
//printf("%f\n%f\n%f\n", a, b, c); 这行没必要,因为在main函数中已经输入了,要用到的三边的值
p = (a + b + c) / 2;
s = sqrt(p*(p - a)*(p - b)*(p - c));
return s;
}本回答被网友采纳
第2个回答  2017-07-27
前面的说明

float fun();
有问题,应该给出参数的类型,否则默认是整数!
float fun(float,float,float);
第3个回答  2013-11-07
语法上都没问题的 你报错的原因是什么 还是没报错只是运行结果不正确
相似回答