题目是知道三角形三边求面积。要这样分布来求,可是我写出来却得不到预期效果 ,求助 谢谢大家了
#include<stdio.h>
#include<math.h>
void input(double *a,double *b,double *c)
{
scanf("%lf%lf%lf",a,b,c);
}
double istriangle(double *a,double *b,double *c)
{
double temp;
if(a+b>c&&a+c>b&&b+c>a) temp=1;
else temp=0;
return(temp);
}
double area(double *a,double *b,double *c)
{
double s; double p;
p=((a+b+c)/2);
s=sqrt(p*(p-a)*(p-b)*(p-c));
return(s);
}
void print(double n)
{
printf("%lf",&n);
}
void main()
{
double a,b,c,temp,sum;
input(&a,&b,&c);
temp=istriangle(&a,&b,&c);
sum=area(&a,&b,&c);
print(sum);
}
------解决方案--------------------------------------------------------
double istriangle(double *a,double *b,double *c)
{
double temp;
if(a+b>c&&a+c>b&&b+c>a) temp=1;
else temp=0;
return(temp);
}
===========
既然a,b,c是地址指针,那么if(a+b>c&&a+c>b&&b+c>a)就不对了吧
------解决方案--------------------------------------------------------
都提示你了
cannot add two pointers
if(a+b>c&&a+c>b&&b+c>a)
改为
if( *a + *b > *c || *a + *c> *b || *b + *c > *a)
只要成立2边和小于第3边就可以了啊,不需要全部检测吧