求教各位C语言高手!

来源:百度知道 编辑:UC知道 时间:2024/06/24 18:41:19
#include<stdio.h>
#include<math.h>
double abc(double a,double b,double c);
double main()
{
double a,b,c,area;
area=abc(a,b,c);
printf("Please enter three numbers:%f,%f,%f\n",a,b,c);
scanf("%lf%lf%lf\n",&a,&b,&c);
printf("The area is:%f\n",area);
}
double abc(double a,double b,double c)
{
double s,d;
s=1.0/2*(a+b+c);
d=sqrt(s*(s-a)*(s-b)*(s-c));
return d;
}
请帮我找出错误,多谢了。
感谢感谢。还有一个问题,为什么运行了您的程序后,需要输入4个数字?三角形应该是3条边的。麻烦再教教我,谢谢哈。

double main() 改成 void main()
area=abc(a,b,c); 写到scanf("%lf%lf%lf\n",&a,&b,&c); 的后面

(1)scanf("%lf%lf%f\n",%a,&b,&c);中的\n去掉,我以前也这样写过一次这样输入,但编译运行时总是在输入值后就没反应了,后来吧\n去掉就OK了
(2)area=abc(a,b,c);写在scanf("%lf%lf%lf",&a,&b,&c); 后面,要先得到值才能传送值馓
(3)double main()改成void main()或在main函数中最后加return,double main()必须有返回值,但是没返回值的话系统只是警告,不会出错

不会吧,我刚看过了程序没有问题啊?

按照下面改就可以了

#include<stdio.h>
#include<math.h>
double abc(double a,double b,double c);
void main()
{
double a,b,c,area;
printf("Please enter three numbers:a b c \n");
scanf("%lf%lf%lf\n",&a,&b,&c);
area=abc(a,b,c);
printf("The area is:%f\n",area);
getch();
}
double abc(double a,double b,double c)
{
double s,d;
s=1.0/2*(a+b+c);
d=sqrt(s*(s-a)*(s-b)*(s-c));
return d;
}