小问题 帮忙解决下

来源:百度知道 编辑:UC知道 时间:2024/09/20 02:27:56
float b=46.0;
printf("%d\n",b);
C语言不是会自动转换的吗?
怎么运行后为0啊!

貌似这样不行.C语言转换是从低级到高级转换的.最好还是加一个强制转换吧.
float b=46.0;
printf("%d\n",(int)b);

问题在这里 %d

printf函数这类不定参数的函数,因为参数个数和类型都不确定,所以在函数的声明语句中无法给出参数类型,在函数体中也无法对参数进行类型转换,所以不像一般函数那样,已经给出了参数类型,可以自动转换.

我只知道两个不同类型量运算会自动向高级的转化,还有加括号强制转化。

定义的是float型,输出int型 ,怎么输出?printf函数不能自动转换数据类型。

#include<stdio.h>
void main()
{
float b=46.0;
printf("%f\n",b);
}