Написать и протестировать функцию для приближённого вычисления ln х по формуле - C (СИ)
Формулировка задачи:
Есть вот такое задание :
Написать и протестировать функцию для приближённого вычисления ln х по формуле (инфа во вложении)
Вот мой код, но тут есть ошибки, помогите мне их исправить.
#include <stdio.h>
int Log(float k, float x);
main()
{
float x, k;
printf("Enter numbers (x- must be from 1/2 to 1 , k- must be only 0 or 1 or 2):\n ");
fflush(stdout);
scanf("%f\t%f", &x, &k);
printf("From %f to %f" "\n", x, k);
printf("log10(x) = %f" "\n", Log(x, k));
return 0;
}
int Log(float k, float x)
{
float Z, u;
if(x<=1 && x>= (1/2))
u= (2*x-sqrt(2))/(2*x+sqrt(2));
if(k=0 || k=1 || k=2)
{for(k=0; k<=2; k++)
Z=(2*k+1)*pow(u,(2*k)+1);
log10(x)=-(1/2)*log10(2)+Z;
else printf("You write incorrect digets!!");
}
return 0;
}Решение задачи: «Написать и протестировать функцию для приближённого вычисления ln х по формуле»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
int Log(float k, float x);
main()
{
float x, k;
printf("Enter numbers (x- must be from 1/2 to 1 , k- must be only 0 or 1 or 2):\n ");
fflush(stdout);
scanf("%f\t%f", &x, &k);
printf("From %f to %f" "\n", x, k);
printf("log10(x) = %f" "\n", Log(x, k));
getchar();
getchar();
return 0;
}
int Log(float x, float k)
{
float Z, u;
if(x <= 1 && x >= (1/2))
u= (2*x-sqrt(2))/(2*x+sqrt(2));
if(k == 0 || k == 1 || k == 2)
{
for(k=0; k<=2; k++)
Z=(2*k+1)*pow(u,(2*k)+1);
return -(1/2)*log10(2)+Z;
}
else printf("You write incorrect digets!!");
return 0;
}