Zeeking99 Ответов: 3

Нахождение кубического корня числа с помощью функции pow в C.


#include<stdio.h>
#include<math.h>
 
main()
{
    float a,b;
     
    printf("Enter a number : ");
    scanf("%d",&a);
     
    b = pow(a,(1/3));
     
    printf("The cube root of a given number is : %f",b);
}


Что я уже пробовал:

Я пробовал использовать скобки. Использование 1.0/3.0 , 0.33

3 Ответов

Рейтинг:
6

Zeeking99

Я понял. Вместо использования 1/3 или 1.0/3.0 вы должны использовать 0.333. Вы получите правильный ответ.

#include<stdio.h>
#include<math.h>

main()
{
    float a,b;
    
    printf("Enter the number you want to find cube root of : ");
    scanf("%f",&a);
    
    printf("The number you entered is : %.2f\n",a);
    
    b = pow(a,0.333);
    
    printf("The cube root of the number = %.2f",b);
}


Рейтинг:
23

CPallini

С помощью float переменные с pow быть бессмысленным. Попробуй

#include <stdio.h>
#include <math.h>

int main()
{
  double a, b; // pow takes doubles

  printf("Enter a number : ");

  if ( scanf("%lf",&a) == 1 )
  {
    b = pow(a,(1.0/3));
    printf("The cube root of %lf number is : %lf\n", a, b);
  }

  return 0;
}


Zeeking99

Спасибо, Чувак, это работает. Я вспомнил, что мы также можем использовать неявное приведение.
Вместо (1.0/3) мы также можем использовать ((float)1/3).
В любом случае спасибо за подсказку.

Рейтинг:
0

OriginalGriff

Это довольно просто:

b = pow(a, 1.0 / 3.0);
Или даже
b = pow(a, 1 / 3.0);


Zeeking99

Программа все еще печатает ноль.