C语言如何输出小数? 我输出的都是整数 很郁闷

#include<stdio.h>
void main()
{
float x=0;
int j=0;
int i=0;
do{
printf("\n");
printf("请输入市值整数(单位:万):");
fflush(stdin);
scanf("%d",&j);
if (j<=100)
{
if ((j>1)&&(j<=5))
i=1;
if ((j>5)&&(j<=30))
i=10;
if ((j>30)&&(j<=80))
i=20;
if (j>80)
i=50;
printf("输出结果为: ");
printf("%d分",j+i);
}
if (j>100)
{
x=(j-100)/2;
i=50;
printf("输出结果为:");
printf("%f分",x+i+100);
}
printf("\n");
printf("\n");
printf("输入0结束程序!!");
}while(j!=0);
printf("\n");
printf("\n");
printf("谢谢使用!再见");
printf("\n");
}

我怎么输出,最终结果都是整数

比如 我输入 101 我想要的结果应该是150.500000
但是 结果确实150.00000
自动的变整数了 求解!!

第1个回答  2009-06-12
x=(j-100)/2;
改为x=(j-100)/2.0;就可以了本回答被提问者采纳
第2个回答  2009-06-12
整数进行加减乘除最终也是整数,即会把运算结果的小数部分舍掉,x=(float)(j-100)/2;
第3个回答  2009-06-12
对最后输出结果进行强制转换x=(float)(j-100)/2
第4个回答  2009-06-12
x=(j-100)/2;
改成x=(j-100.0f)/2;
第5个回答  2021-03-24

C语言大小字母输出

C语言如何输出小数? 我输出的都是整数 很郁闷
改为x=(j-100)\/2.0;就可以了

c语言,两个整数相除如果得到的是小数怎么输出小数?求大神帮我改一下这 ...
把变量改成双精度型(double)的就好了,dev-c++用的编译器是gcc,在我的电脑上实验双精度的没问题,如果不行的话可以换成浮点型变量(float),但是会损失精度

求大神看看C语言的错误 就是我想输出小数 但出来的结果都是那个 感激...
你把double 改成float,或者把所有的%f都改成%lf就行了

c语言。有中文和数字。怎么输出能像我图中画的那样 整整齐齐的输出?
设置字符串长度

C语言输出小数问题,如何让输出完全符合输入,比如我输入1.23,输出就是...
把输入当成字符串处理就可以的;char s[81];scanf("%s",s);printf("%s",s);

求C语言指点,如何让我的输出为小数点后10多位 ??我的输出只有小数点后六...
在printf中修改成("e=%.10lf",e)就好了,后面就能显示十位把10改成多少就显示到多少位

C语言实型数值输出时取到小数点后几位,我是菜鸟啊!
m.nf m指位宽,就是加上小数点一共有多少位,少了就自动不空格,一般默认右对齐;n指小数点后位数,这个不用说了;

c语言输出运用%g如何输出123.45e-6,我现在输出的结果是1.2345e-8
为解决输出问题,你需要自定义程序逻辑。在C语言中,实现自定义输出格式的一种方式是通过`sprintf`函数配合自定义的格式字符串。以下代码示例展示了如何将双精度浮点数`x`(值为`1.2345e-8`)以自定义格式输出:c include include int main(void) { double x = 1.2345e-8;char buff[20];double...

c语言如何输出小数点后第三位数字 比如说一个小数是1.23456,我要输出小...
也就是取模,比如说12%10,那么得到的值为2,同样的道理,你若想要取得小数点后面的第三位,比如a=1.23456,a=a*1000,这时a=1234.56,取模是只能对整型的,所以我们这时候把a转化为整型,(int)(a);这时候a=1234,然后 printf("%d\\n",a%10);搞定了 ...

c语言的格式符
1.%d和%i:带符号十进制形式输出整数的(正数输出+)2.%o:以八进制无符号输出整数 3.%x:十六进制无符号输出整数,小写的x是输出小写的a-f,大写X得到 A-F 4.%u:无符号形式输出整数 5.%c:只能输出一个字符 6.%s:输出字符串 7.%f:小数形式输出单双精度,隐含输出6位小数(默认六位,想要...

相似回答