本文介绍了除以1 / N总是返回0.0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图计算P1 =(1/1)的(1/2)的... *(1 / N),但什么是错的和printf的给我... 0.000 0
的#include<&stdio.h中GT;诠释主要(无效){ INT I,NUM;
浮P3; 做{
的printf(给数N> 3:\\ n);
scanf函数(%D,试验#);
}而(NUM< = 3); I = 1;
P3 = 1; 做{
P3 = P3 *(1 / I);
的printf(%F \\ N,第3页);
}而(I< = NUM); 的printf(\\ NP3 =%F,第3页);
返回0;
}
解决方案
(1 / I)
I
是 INT
,所以这是整数除法,导致0,如果我> 1
。使用 1.0 / I
来获得浮点除法。
i am trying to calculate the p1=(1/1)(1/2)...*(1/n) but something is wrong and the printf gives me 0.000...0
#include <stdio.h>
int main(void) {
int i,num;
float p3;
do {
printf ("give number N>3 : \n" );
scanf( "%d", &num );
} while( num <= 3 );
i = 1;
p3 = 1;
do {
p3=p3*(1/i);
printf( "%f\n",p3 );
} while ( i <= num );
printf("\nP3=%f",p3);
return 0;
}
解决方案
(1/i)
i
is an int
, so that's integer division, resulting in 0 if i > 1
. Use 1.0/i
to get floating point division.
这篇关于除以1 / N总是返回0.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!