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语言大小字母输出