Diskuze: nefunkcni funkce pow()

C++ C a C++ nefunkcni funkce pow()

Avatar
honza.b4
Člen
Avatar
honza.b4:

Ahojte.

Nevite, proc to nefunguje? Melo by to fungovat.

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

int mocnina =10, n = 12;

void umocni(){

int pomoc = pow(mocnina,n);
printf("%d", pomoc);
}

int main(void){

umocni();
return 0;
}

compiler mi vypisuje:

undefined reference to `pow'
 
Odpovědět 4.4.2014 15:28
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na honza.b4
Filip Šohajek:

Pokud kompilujes pomoci gcc pridej parametr -lm

 
Nahoru Odpovědět 4.4.2014 15:33
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na honza.b4
Filip Šohajek:

Hod sem prikaz, kterym to kompilujes.

 
Nahoru Odpovědět 4.4.2014 15:34
Avatar
honza.b4
Člen
Avatar
 
Nahoru Odpovědět 4.4.2014 15:44
Avatar
Filip Šohajek
Redaktor
Avatar
 
Nahoru Odpovědět 4.4.2014 15:46
Avatar
Martin Dráb
Redaktor
Avatar
Martin Dráb:

Ahoj,

v jakém smyslu to nefunguje? Jestli ti to nevypisuje jako výsledek číslo 1000000000000, tak to možná bude tím, že při konverzi mezi reálnými a celými čísly dochází k zaokrouhlování či dokonce nějakému ošklivému useknutí. Předpokládám, že velikost typu int bude v tvém případě 4 bajty (32 bitů), což je hodně málo v porovnání s velikostí např. typu double.

Zkus přiřazovat výsledek funkce pow do nějaké proměnné typu double (či long double) a příslušně změň přepínač ve výpisu.

Nahoru Odpovědět 4.4.2014 20:16
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.