V
vladis222
Здравствуйте, еще проблема с лабораторной на рекурсию . У меня в методичке три колонки:
Вычисляемая ф-я:ln x/(x-1) Формулы по которым производится вычисление: y=сумма от 1 до бесконечности выр-я 1/k *x в ст k
Значения аргументов x=0,7 eps=0,01. Я написал код, но преподу не понравилось его запись, посмотрите пож-та
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <math.h>
float ynext(float n,int f)
{float sum(float n, int f);
float y;
y=sum(n,f+1);
printf("%f ",y);
return y;}
float ln (float n, int k,float eps)
{float ynext(float n,int f);
float y;
float sum(float n, int f);
y=sum(n,k);
printf("%f\n",y);
if ((ynext(n,k)-y)<eps)
return y;
else return ln(n,k+1,eps);
}
float sum(float n, int f)
{float s=0;
float z;
float g=0;
while (g!=f)
{z=(f);
s+=1/(z*pow(n,f));
g++;}
return s;
}
int main(void)
{float x;
float lg;
float eps;
setlocale(LC_ALL,"");
printf("Введите Х\n");
scanf_s("%f", &x);
printf("Введите точность измерений\n");
scanf_s("%f", &eps);
lg=ln(x,1,eps);
printf("ln(x/(x-1)) = %f",lg);
_getch();
}
Вычисляемая ф-я:ln x/(x-1) Формулы по которым производится вычисление: y=сумма от 1 до бесконечности выр-я 1/k *x в ст k
Значения аргументов x=0,7 eps=0,01. Я написал код, но преподу не понравилось его запись, посмотрите пож-та
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <math.h>
float ynext(float n,int f)
{float sum(float n, int f);
float y;
y=sum(n,f+1);
printf("%f ",y);
return y;}
float ln (float n, int k,float eps)
{float ynext(float n,int f);
float y;
float sum(float n, int f);
y=sum(n,k);
printf("%f\n",y);
if ((ynext(n,k)-y)<eps)
return y;
else return ln(n,k+1,eps);
}
float sum(float n, int f)
{float s=0;
float z;
float g=0;
while (g!=f)
{z=(f);
s+=1/(z*pow(n,f));
g++;}
return s;
}
int main(void)
{float x;
float lg;
float eps;
setlocale(LC_ALL,"");
printf("Введите Х\n");
scanf_s("%f", &x);
printf("Введите точность измерений\n");
scanf_s("%f", &eps);
lg=ln(x,1,eps);
printf("ln(x/(x-1)) = %f",lg);
_getch();
}