程序很简单,输入三个数,先判断能否构成一个三角形。
如果不能构成三角形,打印出:ERROR:This is not a triangle!!
如果能构成三角形,则计算其面积。
编译环境为visual c++ 6.0.
源程序如下。
问题出现了:当我把所有double换成float之后,结果准确无误;但是把所有float换成double之后,不管我输入三个什么样的数,都显示:ERROR:This is not a triangle!!
恳请各位高手请教,感激涕零!
#include <stdio.h>
#include <math.h>
int _triangle(double x, double y, double z); // declaration
void main(void)
{ double a,b,c,s,area;
int _triangle(double , double , double );
printf(“Please input 3 numbers of triangle:\n”);
scanf(“%f%f%f”,&a,&b,&c);
if (_triangle(a,b,c)) // if NOT a triangle ,return 1
{
printf(“ERROR:This is not a triangle!!\n”);
}
else
{
s = 1.0/2*(a+b+c);
area = sqrt(s*(s-a)*(s-b)*(s-c));
printf(“a=%7.2f b=%7.2f c=%7.2f\n”,a,b,c);
printf(“area=%7.2f\n”,area);
}
}
int _triangle(double x,double y,double z) // Determine the triangle
{
if ((x+y>z)&&(x+z>y)&&(y+z>x))
return 0; // IS
else
return 1; // NOT
}
>> 本文固定链接: http://www.vcgood.com/archives/3455
>> 转载请注明: yichangzyh 2010年12月17日 于 C语言帝国 发表
http://zhidao.baidu.com/question/90279104.html