|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2008, 14:00 | #1 |
Пользователь
Регистрация: 20.10.2008
Сообщений: 25
|
Возведение в степень без подключения <math.h>
Как реализовать возведение в степень (основание double, показатель int), без подключения <math.h>, на Си
Я в этом деле новичок, так что если можно по проще, чтобы я смог понять как работает. Заранее благодарен |
22.12.2008, 14:31 | #2 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 664
|
main()
{ int n=4,i; double x=2.456,rez; rez=x; for(i=1;i<n;i++) rez=rez*x; }
Неприятности приходят и уходят, а жизнь продолжается!
|
22.12.2008, 15:34 | #3 |
Пользователь
Регистрация: 20.10.2008
Сообщений: 25
|
все понял. спасибо большое
|
22.12.2008, 23:57 | #4 |
Пользователь
Регистрация: 20.10.2008
Сообщений: 25
|
#include<stdio.h>
double S_P(double,int); void main() { double x, R; int y; for(;; { printf("Vvedite osnovanie\n"); scanf("%lf", &x); printf("Vvedite pokazatel\n"); scanf("%d", &y); { if(y==1)break; } R=S_P(x,y); prinf("R=%lf\n", R); } } double S_P(double x,int y) { int i; double N; N=1; for(i=1;i<=y;i++) N=N*x; return N; } вот написал вроде все, но показывает ошибку в break, не пойму как исправить Последний раз редактировалось ManInBlack; 23.12.2008 в 12:30. |
23.12.2008, 08:03 | #5 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
Код:
N=x; for(i=1;i<=y;i++) N=N*x; У тебя там еще и математическая ошибка, точнее арефметическая. Проверяем. вводим различные значения Y (это ведь показатель степени верно?) пусть Y=1 N=x//замени на N=1 N=N*x=x*x иными словами N в первой степени у тебя равна квадрату. замени
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс Последний раз редактировалось ROD; 23.12.2008 в 08:07. |
23.12.2008, 08:16 | #6 |
Пользователь
Регистрация: 20.10.2008
Сообщений: 25
|
N=x//замени на N=1
N=N*x=x*x иными словами N в первой степени у тебя равна квадрату. логично но как раз при y=1, должен происходить последний запрос данных, выполнение операции и завершение работы |
23.12.2008, 08:50 | #7 |
Форумчанин
Регистрация: 28.09.2008
Сообщений: 344
|
если убрать ;
Код:
и вопрос в функции Код:
Я думал надо Код:
|
23.12.2008, 08:50 | #8 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
это у тебя она равна квадрату
говорю тебе, замени у себя в проге строку Код:
Код:
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
23.12.2008, 09:28 | #9 |
Ну и что? :)
Форумчанин
Регистрация: 20.10.2008
Сообщений: 129
|
ну и напоследок:
scanf("%lf", &y); на scanf("%d", &y);
Учиться, учиться и еще раз учиться
|
23.12.2008, 12:57 | #10 |
Пользователь
Регистрация: 20.10.2008
Сообщений: 25
|
Всем спасибо, все заработало, осталось только добавить ветку для отрицательных показателей и все будет шикарно)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Возведение в степень на Pascal | LORD-BY | Помощь студентам | 32 | 28.02.2018 07:48 |
Возведение в отрицательную степень | geishaz | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 09.11.2008 22:43 |
Возведение числа в степень | Roberto | Помощь студентам | 9 | 05.04.2008 09:50 |
Возведение в степень | Stanislav | Общие вопросы Delphi | 10 | 05.12.2007 23:34 |
Возведение в степень... | Sota | Общие вопросы C/C++ | 7 | 18.07.2007 17:05 |