C语言中用于描述小数的数据类型是float和double,float类型表示单精度浮点数,double表示双精度浮点数。
C语言中浮点数常量有两种表示方式:
1、定点表示:(必须有小数点) 如:0.123, .123, 123.0。
2、指数表示:(e或E之前必须有数字,指数必须为整数)如:12.3e3 ,123E2, 1.23e4。
错误的写法:e-5 ,1.2E-3.5,e3。
注意:浮点数常量默认为double类型,如果浮点数常量表示float类型,请在末尾添加小写的f或者大写的F,表示此常量为单精度浮点常量。
float f1 = 1.1f; //小写f
float f2 = 1.1F; //大写F
double d = 1.1; //double类型
用double啊,双精度
scanf("%f",t); 错了
是scanf("%f",&t);
#include
#include
int main() {
double d=0.005,g=0.009794,p0=979.707,pt=101330.0,b=0.00822,n=0.0000183;
double r,q,u,t;
printf("input t\n");
scanf("%f",&t);
r=sqrt(9*n*(0.01/t)*0.5/p0/g);
printf("r=%lf",r);
}
scanf("%f",t);改为scanf("%lf",&t);
printf("r=%f",r);改为printf("r=%lf",r); 试试