racine nième d'un nombre

J'ai écrit un programme pour calculer la racine nième d'un nombre jusqu'à 2 décimales. par exemple 4ème racine de 81 3., 3ème racine de 125 est 5.Sa fonctionne parfaitement sauf pour la 2ème racine de 4. Il donne à la sortie de 1,99 au lieu de 2. Voici le code.

#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;
    }
}

Je l'ai essayé pendant des heures, mais ne peut pas la corriger.
quelqu'un peut-il corriger de cette?? Je serai très reconnaissant.

  • Veuillez utiliser le bouton de code: il aide les autres à lire votre code.
  • Désolé pour la gêne occasionnée. Je suis nouveau ici. La prochaine fois je vais prendre soin de cela.
  • ques édité. au lieu de 3, c'est jusqu'à 2 décimales.
  • Que faire si vous changez incre à 0.001? Cela vous aide?
  • N'aide pas. 0.0078125 a plus de sens, puisque cela a une représentation binaire.
  • Si vous avez besoin de calculer arbitraire racines, vous pouvez utiliser double root = pow(input, 1.0 / base). Par exemple, la 3ème racine à 10, peut être calculé par pow(10, 1.0 / 3), de retour 2.15443.... Si vous êtes à la recherche pour plus de précision, découvrez les formules à en.wikipedia.org/wiki/Nth_root.

InformationsquelleAutor narayanpatra | 2010-08-16