Escribí un programa para calcular enésima raíz de un número hasta 2 decimales. por ejemplo, la cuarta raíz de 81 es 3., la tercera raíz de 125 es 5. Está funcionando bien, excepto la segunda raíz de 4. Da la salida 1.99 en lugar de 2. Aquí está el código.enésima raíz de un número
#include<stdio.h>
int main(int argc, char **argv)
{
double root1(int,int);
int n;
int num1;
double root;
printf("\n\n-----------This is the programme to find the nth root of a number-----------\n\n");
printf("Enter a nuber greater then 1 : ");
scanf("%d",&num1);
if(num1>1)
{
printf("Enter the value for 'n'(the root to be calculated) : ");
scanf("%d",&n);
root = root1(num1,n);
printf("%d th Root of %d is %f\n\n", n,num1,root);
}
else
printf("wrong entry");
return 0;
}
double root1(int a, int b)
{
int j;
double i,k;
double incre = 0.01;
for(i=1; i<=a; i = i+incre)
{
for(j=0;j<b;j++)
{
k=k*i;
}
if(a<k)
{
return(i-incre);
break;
}
else
k=1;
}
}
Lo he intentado durante horas, pero no puedo rectificarlo. ¿alguien puede depurar esto? Estaré muy agradecido.
Utilice el botón de código: ayuda a otros a leer su código. –
Disculpe las molestias. Soy nuevo aquí. La próxima vez me ocuparé de esto. – narayanpatra
preguntas editadas. en lugar de 3, tiene hasta 2 lugares decimales. – narayanpatra