C语言编写函数,对浮点数保留两位小数,对第三位四舍五入。程序如下 #include<stdio.h

C语言编写函数,对浮点数保留两位小数,对第三位四舍五入。程序如下 #include<stdio.h>
#include<math.h>
void sum(float x)
{
float a,b,c,d;
int f;
c=100*x;
b=floor(c);
a=1000*x;
d=(a-10*b);
f=floor(d);
printf("%d ",f);
if(f<5)
{ x=x; printf("%.2f ",x);}
if (f>5)
{x=x+0.01;
printf("%.2f ",x-0.01);}
if(f=5)
{printf("%.2f ",x+0.01);}
}
main()
{
float x;
scanf("%f",&x);
sum(x);
}
为什么我输入3.1777时,会得到两个数3.18 3.20

 #include<math.h>
 void sum(float x)
 {
 float a,b,c,d;
  int f;
  c=100*x;
  b=floor(c);
  a=1000*x;
   d=(a-10*b);
   f=floor(d);
   printf("%d ",f);  
 if(f<5)
 { x=x; printf("%.2f ",x);}
 if (f>5)
 {x=x+0.01;
 printf("%.2f ",x-0.01);}
  if(f=5)  //这里写成了赋值语句,应该是==
 {printf("%.2f ",x+0.01);}
 }
 main()
 { 
  float x;
  scanf("%f",&x);
 sum(x);
 }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-09
呃啊。
这种事情一句话不久解决?
float a;
scanf("%f",&a);
printf("%.2f",a+0.005);
真不知道为什么要用这么多代码

不过你写的我也给你看了
你的==你写成了=

所以if(f=5)内的也被执行了
第2个回答  2014-05-09
if(f=5) = 应该是 ==
if(f == 5)追问

😭。。。好像还真是

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网