关于定于float和double的输出有关问题
关于定于float和double的输出问题
#include<stdio.h>
#include<math.h>
main()
{
float a,b,c;
double area,s;
scnaf("%f %f %f",&a,&b,&c);
s=(a+b+c)/(1.0/2);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%lf",area);
return 0;
}
----------------------------------------------------------------
小弟是新人,在自学的时候遇到了一点问题,为什么谭老师书上,在定义float之后。在程序里面进行赋值,就可以得出正确答案。但是自己输入任意3个值的时候,输出的是(比如说我输入3.0 4.0 5.0的结果是437.629981)
------解决思路----------------------
#include <stdio.h>
#include <math.h>
double Area(float a,float b,float c)
{
double s;
double p;
if (a+b>c&&a+c>b&&b+c>a) //判断3边是否构成三角形
{
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c)); //调用库函数求三角形面积
return s;
}
else
{
return 0; //无法构成三角形返回0
}
}
int main(void)
{
float a,b,c;
double ar;
printf("input three numbers: \n");
scanf("%f %f %f",&a,&b,&c); //输入三角形三边长
ar=Area(a,b,c);
if(ar)
{
printf("area=%f\n",ar); //输入三角形面积
}
else
{
printf("it is false!");
}
return 0;
}
#include<stdio.h>
#include<math.h>
main()
{
float a,b,c;
double area,s;
scnaf("%f %f %f",&a,&b,&c);
s=(a+b+c)/(1.0/2);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%lf",area);
return 0;
}
----------------------------------------------------------------
小弟是新人,在自学的时候遇到了一点问题,为什么谭老师书上,在定义float之后。在程序里面进行赋值,就可以得出正确答案。但是自己输入任意3个值的时候,输出的是(比如说我输入3.0 4.0 5.0的结果是437.629981)
------解决思路----------------------
#include <stdio.h>
#include <math.h>
double Area(float a,float b,float c)
{
double s;
double p;
if (a+b>c&&a+c>b&&b+c>a) //判断3边是否构成三角形
{
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c)); //调用库函数求三角形面积
return s;
}
else
{
return 0; //无法构成三角形返回0
}
}
int main(void)
{
float a,b,c;
double ar;
printf("input three numbers: \n");
scanf("%f %f %f",&a,&b,&c); //输入三角形三边长
ar=Area(a,b,c);
if(ar)
{
printf("area=%f\n",ar); //输入三角形面积
}
else
{
printf("it is false!");
}
return 0;
}