数据类型转换
由低级向高级转换
#include<stdio.h>
#define H 0.6180339887
int main()
{
double a[100000];
int n;
int l,i;
while(scanf("%d",&n)!=EOF)//输入a【1】的数值
{
scanf("%d",&l);//输入数组元素个数
a[1]=n;
for(i=2;i<=l;i++)//计算每个元素数值
{
a[i]=a[i-1]/H;
}
for(i=1;i<l;i++)//输出每个元素
{
printf("%.0lf ",a[i]);
}printf("%.0lf",a[l]);
}
return 0;
}
运行结果 5 8 13
说明用%.0lf可以四舍五入
强制类型转换后会产生精度损失,同时对比上一张图可得,当a是double类型时不能通过printf("%d\n",a);进行强制转换要写成上述图片的形式。