c语言四舍五入,封存两位小数输出结果不对

c语言四舍五入,保留两位小数输出结果不对
#include<stdio.h>
main()
{
double a,b;
printf("请输入一个数字:");
scanf("%f",a); 
b=(int)(a*100+0.5)/100; 
printf("%6.2f",b);
}


------解决方案--------------------
楼主scanf("%f",a); 写错啦,应该是scanf("%f",&a); 而且楼主你把double转换成int的,int的数据不是四舍五入,而是舍弃小数后面的
------解决方案--------------------
楼主看一下我改正后的
C/C++ code
#include<stdio.h>
main()
{
double a,b;
printf("请输入一个数字:");
scanf("%lf",&a);  
b=((int)(a*100+0.5))/100.0;  
printf("%6.2lf\n",b);
}

------解决方案--------------------
%f 在 scanf()和 printf() 中的类型不同
------解决方案--------------------
探讨
楼主看一下我改正后的

C/C++ code

#include<stdio.h>
main()
{
double a,b;
printf("请输入一个数字:");
scanf("%lf",&amp;a);
b=((int)(a*100+0.5))/100.0;
printf("%6.2lf\n",b);
}