Написать функцию возведения вещественного числа в целую степень без math.h - C (СИ)
Формулировка задачи:
необходимо написать программу в которой используется ф-я возведения некоторого вещественного числа в некую целую степень.
Условия выхода-возведение в 1 степень, но и при этом необходимо вычислить...
include <math.h> использовать запрещено...
подскажите с программой, вот я пытался написать код, но не совсем получается:
помогите чем-нибудь... заранее благодарен...
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
double N_O (double, int)
void main()
{
clrscr ();
double y,x;
int n;
while (1)
{
printf ("vvedite osnovanie x= \n");
scanf ("%lf ",&x);
printf ("vvedite stepen n= \n");
scanf ("%d ",&n);
if (n==1) {printf ("y=%lf \n",y);break;}
y=N_O (R);
printf ("y= %lf \n",y);
}
}
double N_O (double b, int c) //ф-ю не могу написать
{
double P;Решение задачи: «Написать функцию возведения вещественного числа в целую степень без math.h»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
double N_O (double, int);
void main()
{
clrscr ();
double y=1,x;
int n;
do {printf ("vvedite osnovanie x=\n");
scanf ("%lf",&x);
printf ("vvedite stepen n= \n");
scanf ("%d",&n);
if (n!=0) y=N_O (x,n);
printf ("%lf v stepeni %d= %lf \n",x,n,y);
printf ("\n");
getch();
} while (n!=1);
}
double N_O (double b, int c)
{
if (c==0)
return 1;
double result=1;
for (int i=0; i<abs(c);i++)
result*=b;
if (c<0)
result=1/result;
return result;
}
Объяснение кода листинга программы
- ЗАГОЛОВКИ:
- main()
- N_O()
- Переменные:
- y
- x
- n
- b
- result
- i
- Описание работы программы:
- Пользователю предлагается ввести основание и степень числа для возведения в степень
- Если пользователь вводит ноль для степени, программа выводит сообщение об ошибке и завершается
- В основной функции выполняется цикл, который продолжается до тех пор, пока пользователь не введет 1 для степени
- Внутри цикла выводится запрос на ввод основания и степени числа
- После ввода данных вызывается функция N_O, которая возводит основание в степень и возвращает результат
- Результат выводится на экран
- Функция N_O() реализована с помощью цикла, который выполняется столько раз, сколько указано в степени числа
- На каждой итерации цикла результат умножается на основание
- Если степень числа отрицательная, результат делится на 1
- Связь между функциями:
- Функция main() вызывает функцию N_O()
- Функция N_O() возвращает результат, который используется в функции main() для вывода на экран