猿问

为什么输出都是0

#include<stdio.h>
#include<math.h>
int main()
{
	int n,m,k;
	double i;
	while(~scanf("%d %d %d",&n,&m,&k))
	{
		if(n <= 5 && n >= 1 && m <= 5 && m >= 1 && k <= 5 && k >= 1)
		{
			i =  k / (n + m + k) * (k-1) / ( n + m + k - 1);
			printf("%.2lf\n",i);
		}
	}
	return 0;
 }


慕侠2084024
浏览 1817回答 3
3回答

望远

i =  k*1.0 / (n + m + k) * (k-1) / ( n + m + k - 1);

慕的地4358790

i =  k*1.0 / (n + m + k) * (k-1) / ( n + m + k - 1);因为函数声明变量的时候都是整型,所以i的计算结果为整型(已经舍去小数点后的东西,再改为保留两位小数0.00),但是k*1.0可以起到隐形类型转换为Double类型,此刻输出的正是你想要的答案。

望远

m n k定义的都是整数,整数÷整数=整数。
随时随地看视频慕课网APP
我要回答