Форум программистов, компьютерный форум CyberForum.ru

Срочно функция pow(a,n) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Bomg
2 / 2 / 0
Регистрация: 04.10.2009
Сообщений: 51
21.12.2010, 15:01     Срочно функция pow(a,n) #1
По первому условию если идти то всегда будет '1' почему не пойму.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdafx.h>
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
 
int main()
{
float x,y,z,a,b;
cout<<"BBeDuTe 4ucJlo X= ";
cin>>x;
cout<<endl<<"BBeDuTe 4ucJlo Y= ";
cin>>y;
if (x<=0)  // вот это злостное условие.
 {
   z=pow(3*x*x+y*y*y*y*y,1/7);
 }
if (x>0 && abs(y)>=x)
 {
     z=asin(x/y);
 }
if (x>0 && abs(y)<x)
 {
     z=log(4*x-abs(3*y))/log(x-abs(y)+1);
 }
cout<<endl<<"z = "<<z<<endl;
system("pause");
return 0;
}
остальные условия работают, получается гонит pow, ставил степень выше 1 работает ниже - ответ всегда один. Нужен корень 7 степени. Зарание спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2010, 15:01     Срочно функция pow(a,n)
Посмотрите здесь:

C++ Функция pow. Преобразование типов
C++ Функция pow() перегрузки
Функция pow и график C++
C++ Рекурсивная функция pow(x, n)
C++ Функция pow()
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.12.2010, 15:13     Срочно функция pow(a,n) #2
C
1
z=pow(3*x*x+y*y*y*y*y,1./7.);
Дело в том, что 1 / 7 - целочисленное деление. Которое даст в результате 0. А любое число в нулевой степени, как известно, 1.
Bomg
2 / 2 / 0
Регистрация: 04.10.2009
Сообщений: 51
21.12.2010, 15:26  [ТС]     Срочно функция pow(a,n) #3
мне нужен тип float при типе double все работает с точками, а при float C2666 ошибка. А нужен float или real(его вообще нету).
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.12.2010, 15:29     Срочно функция pow(a,n) #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
 
int main()
{
float x,y,z,a,b;
cout<<"BBeDuTe 4ucJlo X= ";
cin>>x;
cout<<endl<<"BBeDuTe 4ucJlo Y= ";
cin>>y;
if (x<=0)  // вот это злостное условие.
 {
   z=pow(3*x*x+y*y*y*y*y, static_cast< float >(1 / 7));
 }
if (x>0 && abs(y)>=x)
 {
         z=asin(x/y);
 }
if (x>0 && abs(y)<x)
 {
         z=log(4*x-abs(3*y))/log(x-abs(y)+1);
 }
cout<<endl<<"z = "<<z<<endl;
system("pause");
return 0;
}
Yandex
Объявления
21.12.2010, 15:29     Срочно функция pow(a,n)
Ответ Создать тему
Опции темы

Текущее время: 22:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru