در کد شماره یک برای کاری ساده تابع pow نیاز است اما زمانی که math.h را اینکلود می کنم کل برنامه ایراد پیدا می کند امتحان کردم فقط بعد از اینکلود math.h این مشکل بوجود میاید

کد بدون math.h



#include <iostream.h>
#include <stdio.h>
#include <conio.h>






class poly
{
private:
int n;
float a[100];
public:
void get();
void put();
poly(int=0);
poly operator+(poly);
poly operator-(poly);
poly operator*(poly);
float val(float);
};

void poly::get()
{
cout<<"\nEnter degree: ";
cin>>n;
if(n<0) n=0;
if(n>100) n=100;
int i;
for(i=0;i<n;i++)
{
cout<<"\nEnter"<<i<<"'th coefficient: ";
cin>>a[i];
}
}

void poly::put()
{
int i;
cout<<endl;
for(i=0;i<n;i++)
cout<<a[i]<<"x^"<<i<<"+";
}

poly poly::operator+(poly b)
{
poly s;
s.n=(n>b.n)?(n):(b.n);
int i;
if(s.n==n)
for(i=b.n;i<s.n;i++)
b.a[i]=0;
else
for(i=n;i<s.n;i++)
a[i]=0;
for(i=0;i<s.n;i++)
s.a[i]=a[i]+b.a[i];
return s;
}

poly poly::operator-(poly b)
{
poly s;
s.n=(n>b.n)?(n):(b.n);
int i;
for(i=0;i<s.n;i++)
s.a[i]=a[i]-b.a[i];
return s;
}

poly::poly(int h)
{
int i;
n=h;
for(i=0;i<h;i++)
a[i]=0;
}

poly poly::operator*(poly b)
{
poly s(n+b.n-1);
int i,j;
for(i=0;i<n;i++)
for(j=0;j<b.n;j++)
s.a[i+j]+=a[i]*b.a[j];
return s;
}

///meghdar ezafe shode barnameh

float poly::val(float value)
{

int j = 0;
float answer=0;

for(j=0;j<n;j++)
{
answer +=(a[j] * (pow(value,j)) );
}

return answer;
}

void main ()
{
poly a,b,c,d;
a.get();
a.put();
b.get();
b.put();
c=a+b;
c.put();
d=a*b;
d.put();
getch();

poly javab;
javab.get();
javab.put();
float matloob;
cin >> matloob;

cout << "\n"<<javab.val(matloob);

}


کد با math.h



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





class poly
{
private:
int n;
float a[100];
public:
void get();
void put();
poly(int=0);
poly operator+(poly);
poly operator-(poly);
poly operator*(poly);
float val(float);
};

void poly::get()
{
cout<<"\nEnter degree: ";
cin>>n;
if(n<0) n=0;
if(n>100) n=100;
int i;
for(i=0;i<n;i++)
{
cout<<"\nEnter"<<i<<"'th coefficient: ";
cin>>a[i];
}
}

void poly::put()
{
int i;
cout<<endl;
for(i=0;i<n;i++)
cout<<a[i]<<"x^"<<i<<"+";
}

poly poly::operator+(poly b)
{
poly s;
s.n=(n>b.n)?(n):(b.n);
int i;
if(s.n==n)
for(i=b.n;i<s.n;i++)
b.a[i]=0;
else
for(i=n;i<s.n;i++)
a[i]=0;
for(i=0;i<s.n;i++)
s.a[i]=a[i]+b.a[i];
return s;
}

poly poly::operator-(poly b)
{
poly s;
s.n=(n>b.n)?(n):(b.n);
int i;
for(i=0;i<s.n;i++)
s.a[i]=a[i]-b.a[i];
return s;
}

poly::poly(int h)
{
int i;
n=h;
for(i=0;i<h;i++)
a[i]=0;
}

poly poly::operator*(poly b)
{
poly s(n+b.n-1);
int i,j;
for(i=0;i<n;i++)
for(j=0;j<b.n;j++)
s.a[i+j]+=a[i]*b.a[j];
return s;
}

///meghdar ezafe shode barnameh

float poly::val(float value)
{

int j = 0;
float answer=0;

for(j=0;j<n;j++)
{
answer +=(a[j] * (pow(value,j)) );
}

return answer;
}

void main ()
{
poly a,b,c,d;
a.get();
a.put();
b.get();
b.put();
c=a+b;
c.put();
d=a*b;
d.put();
getch();

poly javab;
javab.get();
javab.put();
float matloob;
cin >> matloob;

cout << "\n"<<javab.val(matloob);

}


اسمایلی نیازمند کمک