News:

As usual while waiting for the next release - don't forget to check the nightly builds in the forum.

Main Menu

Pow and Math.h

Started by ultrabot90, May 23, 2007, 04:34:20 PM

Previous topic - Next topic

ultrabot90

Made console project.
I tried to used pow() function.
Didnt work.
Nor did any math.h function.
In fact, it does not detect any math.h file.
What should I do?
-regards,
ultrabot90

killerbot

1) C++ project ?
2) assuming yes on 1)

in your cpp file :
#include <cmath>

using namespace std;

TDragon

Please post a small example of the code that doesn't work, and the contents of the Build log tab in the Messages area, after a failed build.
[url="https://jmeubank.github.io/tdm-gcc/"]https://jmeubank.github.io/tdm-gcc/[/url] - TDM-GCC compiler suite for Windows (GCC 9.2.0 2020-03-08, 32/64-bit, no extra DLLs)

ultrabot90

*smashes head*
Sorry for being so damn unspecific. -_-'
Its C++.
Cmath worked, thanks.
And now same program, new problems.
#include<iostream>
#include<cmath>
using namespace std;
void series(int, int);
int main()
{
    int x, n;
    cout<<"\nEnter the value of x & n…\n";
    cin>>x>>n;
    series(x, n);
    return 0;
}
void series(int x, int n)
{
    int sum=1,f=1,j;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=(2*n-1);j--)
        f*=j;
        sum+=f/pow(x,i); //Line 20
    }
    cout<<"\n"<<sum;
}

Line 20 - Error - Call of overloaded function 'pow(int&, int&)' is ambigous
Help please.

darkwalk

http://cppreference.com/stdmath/pow.html

from the reference, pow takes arguments:   double base, double exp

Instead, your function is invoked using something else.  Cast your second argument into a double, adn you should be good.

ultrabot90


killerbot

and important !!!

Your code is actually not correct. You have to specify to use the std namespace (always do this in cpp files, never headers).

You can :

a) using namespace std;

or specify just what you need :
b)
using std::cout;
using std::cin;
using std::pow;

ultrabot90

I think I did type in the "using namespace std;" line...
Another problem is that C::B always returns a "Warning : No newline at end of file."
Its there in any program I do. Even the previous one.
Thats the entire lot of problems, I think.

killerbot

it's no CB that's bugging you, it's the compiler.
A lot of compilers want all files to end with an empty line.

Just make a (good) habit out of it ;-)

ultrabot90

oO
Ok...That did the trick.
Thanks.

transfrank

Hello,
I did
#include <cmath>
using name space std;


and upon compilation, code::blocks opens up the cmath file and gives the following error message for all the math functions, (e.g. like for arc cosine):
error '::acos' has not been declared

Also, I added under Project build options-> linker settings->link libraries : m for math.
Advice on what us wrong?
Thanks,
Frank

stahta01

Quote from: transfrank on March 15, 2008, 05:21:42 AM
#include <cmath>
using name space std;


It is namespace not name space!

Tim S
C Programmer working to learn more about C++.
On Windows 10 64 bit and Windows 11 64 bit.
--
When in doubt, read the CB WiKi FAQ. [url="http://wiki.codeblocks.org"]http://wiki.codeblocks.org[/url]

transfrank

I did namespace in the code and just typed it too quickly here. So my problem persists.