首页 > C/C++语言 > C/C++基本语法 > 请高手帮我看一下,我什么把float换成double就不行了?
2010
12-17

请高手帮我看一下,我什么把float换成double就不行了?

程序很简单,输入三个数,先判断能否构成一个三角形。
如果不能构成三角形,打印出: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
}


请高手帮我看一下,我什么把float换成double就不行了?》有 2 条评论

  1. wsj6563 说:
     
    scanf(“%f%f%f”,&a,&b,&c);//float型输入
    改成
    scanf(“%lf%lf%lf”,&a,&b,&c);//double型输入
    就行了。
    楼主一定要看看这个链接。

    http://zhidao.baidu.com/question/90279104.html

  2. lurrass 说:
    scanf(“%f%f%f”,&a,&b,&c);//float型输入
    改成
    scanf(“%lf%lf%lf”,&a,&b,&c);//double型输入
    就行了。

留下一个回复