#include <stdio.h>
#include <stdlib.h>
int main()
{
double analit = 1.0, eps = 0.00000001, prog = 0.0;
for(int i = 1; ; i++){
prog += (double)1/(i*(i+1));
if((analit - prog) <= eps){
printf("%.10f\n%.10f\n%.10f\n%d\n", analit, prog, eps, i);
return 0;
}
}
}
Нужно найти сумму бесконечно убывающей прогрессии с точностью до eps, не пойму в чём ошибка и почему prog > 1 и prog > analit - eps?
код выводит:
1.0000000000
1.0796516589
0.0000000100
6697830
А должен по идеи
1.0000000000
0.9999999999
0.0000000100
какое-то количество итераций