Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: Cena   (11.12.2011 в 01:51)
Помогите пожалуйста с кодом, дело в том что, у меня при выполнении программы, функция pow некорректно считает отрицательные значения, то есть:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{double x, xn, xk, dx, a, max, min;
long double z;
int k;
cout<<"xn="; \\xn=1.5\\
cin>>xn;
cout<<"xk="; \\xk=5.5\\
cin>>xk;
cout<<"dx="; \\dx=0.2\\
cin>>dx;
cout<<"a="; \\a=2.94\\
cin>>a;
for(x = xn, k=0; x <= xk; x += dx,k++)
{z=pow(tan(a - x)/(4.35 + sin(a + x)), double(1.0/3.0));
if(k%4==0) cout<<"x="<<x<<"\t z="<<z<<endl;}
if(k==1)
{max=fabs(z);
min=fabs(z);}
if(fabs(z)>max) max=fabs(z);
if(fabs(z)<max) min=fabs(z);
x=x+dx;
cout<<"max="<<max<<"\t min="<<min<<"\n";
cout<<"R="<<max-min<<"\n";
system("PAUSE");
return 0;}
z выдает ошибку, когда нужно возвести отрицательное число в кубический корень, подскажите, как сделать так, чтобы pow считала отрицательные значения?


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: