编写一个函数,作用是保留两位小数,对第三位四舍五入···
我写的程序如下
#include
float fun (double);
int main()
{
double a;
float b;
printf("请输入一个浮点数:%lf\n",&a);
b=fun(a);
printf("转换后的浮点数为:%12.2f\n",b);
return 0;
}
float fun (double h)
{
int e,r,t;
float c;
e=(int)(h);
t=(int)(h*100);
t=t%100;
r=(int)(h*1000);
r=r%10;
if(r>=5)
c=(t+1)*0.01;
else
c=t*0.01;
c=e+c;
return (c);
}
但是程序在运行的时候确实这样子的:
请输入一个浮点数:0.000000
转换后的浮点数为:0.00
Press any key to continue
都没让我输入,就直接0.000000,搞不懂,这个是为什么呢~
人气:420 ℃ 时间:2020-01-29 02:20:02
解答
printf是输出把
scanf才是输入
整理如下
#include
float fun (double);
int main()
{
double a;
float b;
printf("请输入一个浮点数:");
sanf("%f",&a);
b=fun(a);
printf("转换后的浮点数为:%12.2f\n",b);
return 0;
}
float fun (double h)
{
int e=(int)(h*100.0);
e%=10;
if(e>=5)
h+=0.01;
return (h);
}
推荐
猜你喜欢
- 化简:x2+4x−2+4x/2−x.
- 一个两位数,个位上的数字比十位大5,把个位上的数与十位数对调新数与原数之和为143,则这两位数为?
- business development comity meeting
- 邮购一种图书,每册定价a元,另加价10%作为邮费,那么购书n册需要费用多少元(列单项式,并指出它的系数和次数)
- “绿叶在光下制造淀粉”实验中染成蓝色的叶片做叶的徒手切片,在显微镜下观察到变蓝的部位是细胞中的( ) A.液泡 B.细胞核 C.线粒体 D.叶绿体
- 已知函数y=tanωx(ω≠0)在区间(-π,π)上是增函数,求实数ω的取值范围
- 一张方格纸,怎样剪一刀,得到一个十字形?(可以对折)
- 《水调歌头·明月几时有》词的上片极写作者在“天上”、“人间”的徘徊、矛盾,下片写(),以积极乐观的