如图,这是个计算圆的周长和面积的,为什么float和double的改变会不同。double的如图所示,float的话能正常输出?(使用double时%f和%1f都试过,结果一样)
# include<stdio.h>
#define pi 3.1415926
void main()
{
double r, l, s;
printf("请输入圆的半径: ");
scanf("%lf", &r); /*用于输入一个浮点数据存放于地址&r*/
l = 2 * pi * r; /*计算周长,赋值给C*/
s = pi * r * r; /*用于计算面积*/
printf("圆的周长:%8.4f;\n园的面积为:%8.4f\n", l, s); /*周长,面积都是8个字符宽,4位小数*/
}
如果是double类型,定义接收格式,应该是%lf,如果是float,是%f,因为double和float在内存分配上存在差异,所以用scanf函数进行输入的时候要加以区别。