Код для поиска числа e не запускаеться

#include <stdio.h>

int main() {
    int s=2;
double a,k=1,sum=1;
scanf("%lf",&a);
do{
    sum=sum+k;
    k=k*(1/s);
    s++;
}while (a<k);
printf("%.8lf",sum);
  return 0;
}

Небольшой код, Вычислить число e=1+1/1!+1/2!+1/3!+...+1/k! и так пока следующее слагаемое не станет меньше а

Не понимаю в чем ошибка?


Ответы (1 шт):

Автор решения: Mikhailo

Замените одну строку:

k=k*(1/s);

на

k=k/s;

Когда вы пишите 1/s, то получаете 0, потому что и 1, и s имеют тип int, и деление получается целочисленное. А так как s больше 1, то и в результате - 0.

→ Ссылка