360安全卫士起什么作用:如下C语言结果为什么永远为0???

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/01 09:11:11
main()
{
float a,b,c;
scanf("%f,%f",&a,&b);
c=(a*b+2*6)/2*(a+b);
printf("%d\n",c);
}
低类型向高类型转换,不是自动转换吗?为什么会丢失数据呢?
我也知道是输出格式的问题.

main()
{float a,b,c;
scanf("%f,%f",&a,&b);
c=(a*b+2*6)/2*(a+b);
printf("%f\n",c);}/*c输出格式符为%f*/

你定义的是浮点型,然后输出是整形。当然是0了

main()
{
float a,b,c;
scanf("%f,%f",&a,&b);
c=(a*b+2*6)/2*(a+b);
printf("%d\n",c);
///~~~~%d -> %f
}

main()
{
float a,b,c;
scanf("%f,%f",&a,&b);
c=(a*b+2*6)/2*(a+b);
printf("%d\n",(int)c);
}

他可能就是不想输出.000000吧,要设置一下的,或者(int)c一下了:)

建议你去看下类型转换规则.