我编写了一个简单的程序,它读取一个整数number
并打印:1 / number
。
我不明白为什么输出总是:0.000
。
void main()
{
int n = 0;
scanf("%d",&n);
float f = 1 / n;
printf("%f",f);
}
答案 0 :(得分:6)
您的(1/n
)返回一个整数值!
你需要在分区中至少有一个float
值!
将(1 / n
)更改为(1.0 / n
)。
答案 1 :(得分:4)
尝试:
f = 1.0 / n;
1/n
将是转换为float并分配给f的int。
int
,1 / n
0
的值为n > 1
。
1.0 / n
将在浮动中执行计算,f
将被分配预期结果。
答案 2 :(得分:2)
你的问题的原因是,你的两个参数都是整数。除以它们将始终产生整数。
尝试类似:
int n;
scanf("%d",&n);
float f=1.0f/n; // n will be converted to type: float
或者读取浮动。
float n;
scanf("%f",&n);
float f=1/n; // 1 will be converted to type: float
答案 3 :(得分:0)
请试试这个,它有效
multinom
答案 4 :(得分:0)
或许你应该只是"演员"像这样的操作
float f =(float)1 / n; 这将有效!!!