C语言小数点后面的0

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言小数点后面的0相关的知识,希望对你有一定的参考价值。

写出下面程序的运行结果,然后修改该程序,使其能输出实数2.5(至少用两种以上方法解决。
#include<stdio.h>
void main()

int a=5,b=2;
float c;
c=a/b;
printf("%f\n",c);

这个答案我怎么得出的都是2.000000
就是改了以后也是2.500000
怎么才能让后面的0没有啊
%.1f这个不能用哦,我还没学到这,不能用啊
#include<stdio.h>
void main()

int a=5,b=2;
float c;
c=(float)a/(float)b;
printf("%f\n",c);


#include<stdio.h>
void main()

float a=5,b=2,c;
c=a/b;
printf("%f\n",c);

我的答案就 是这2个,但是都是2.500000

怎么一个一个打印,能把程序写下来吗?

你的变量
a,b,d
定义为整型,也就是只能保存整数
变量c定义为单精度的浮点型,也就是可以保存小数,默认保存六位小数,不足的用0补齐
如果要让变量c不保存小数,只需要改成
printf("这两个数的商为:%.0f\n"
,c);
及可
.0表示保存0位小数
参考技术A .1f为什么不能用,编程这种东西就要求灵活,只要能实现想要的效果,什么方法都无所谓.难道别人要打你,你能说我没学过打架,你不要打我么

除了.1f,还可以用%g,%g是在科学计数法和普通方法之间自动选择最短的形式输出.
当然,将数放到字符串中也行,算是个比较"笨"的方法,tyoukiLL的方法也有点问题,应该是从字符串的右边开始,找到第一个非'0'的字符停下,然后左边开始输出,到这个字符为止.本回答被提问者采纳
参考技术B %.1f这个不能用(最好用)

不行的话放到字符数组里,然后1个1个打印。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()

float a=5,b=2,c;
int i = 0;
char d[10];
c = a/b;

sprintf(d,"%f",c);

while (d[i] != '0')

printf("%c",d[i]);
i++;

getchar();
return 0;
参考技术C 一个一个打印。。。

以上是关于C语言小数点后面的0的主要内容,如果未能解决你的问题,请参考以下文章

关于用C语言求一个小数求小数点后面的位数多少的问题,求大神解答。

c语言中怎么保留一位小数,且小数点后是0或5

在 C语言中 双精度和单精度的数,小数点后面分别保留几位啊·······

C语言 怎么取小数的最后一位

C语言编程中怎么自动去掉浮点数小数点后没用的0。

求一个c语言函数:当小数部分不为0时,返回1;小数部分为0时,返回0。如decimal(4.5) return0