I am trying to calculate 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;
}
p3*(1/i)
is integer division. Tryp3 * (1.0 / i)
instead. Oh ... and usedouble
rather thanfloat
for your floating-point numbers. – Rodmuni
andnum
, yet it does not alter either one of them. – Intactp3 /= i;
instead? ;-) – Trapp