C语言小数点后面的0

来源:百度知道 编辑:UC知道 时间:2024/05/22 23:51:17
写出下面程序的运行结果,然后修改该程序,使其能输出实数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

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

.1f为什么不能用,编程这种东西就要求灵活,只要能实现想要的效果,什么方法都无所谓.难道别人要打你,你能说我没学过打架,你不要打我么

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

%.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;
}

一个一个打印。。。