Найти наименьший номер n последовательности, для которого выполняется условие
| an – an-1| < e. Заданная последовательность an = 2 + 1/ an-1 , a1 = 2. Вывести на экран этот номер и все элементы ai, где i =1, 2, …, n, если e = 10*(-3), т.е. (В степени)
----------------------------------------
У меня есть прога в Паскале , теперь её надо перевести на С, вот только не получается , помогите пожалуйста.
Program z;
Var
a,a_next:real;
n:integer;
const
eps=0.001;
begin
a_next:=2;
n:=1;
repeat
a:=a_next;
a_next:=2+1/a;
if abs(a_next-a)>eps then begin
writeln('a[',n:2,']=',a:10:5);
inc(n);
end;
until abs(a_next-a)<eps;
writeln('n=',n);
readln;
end.
А вот она же на С, только в мойм корявом исполнении :
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
void main()
{
float a, a_next;
int n;
a_next=2;
n=1;
const eps=0.001;
do
{ a=a_next;
a_next=2+1/a;
if (abs(a_next-a) > eps)
cout<<"a['," << n<<",']=, " << a <<endl;
n++;
}
while (abs(a_next-a) <eps);
cout<<"n="<<n<<endl;
getche();
}