Bug kompilacji, a raczej wyniku

0

Widziałem już kilka komentarzy odnośnie bug'a którego zamieściłem, i może to ja jestem czegoś nieświadomy, ale kod niżej

#include <iostream>
#include <math.h>
#include <stdlib.h>

using namespace std;

int long_func(int a, int b, int c, int x)
{
long shock = pow(a*x, 2) + (b*x) + c;
return shock;
}

int double_func(int a, int b, int c, int x)
{
double shock = pow(a*x, 2) + (b*x) + c;
return shock;
}

int main ()
{
cout << long_func(2,4,2,15) << endl;

cout << double_func(2,4,2,15) << endl;

system("PAUSE");
return 0;
}
 

skompilowany przez Codeblocks i Dev'a daje inne wartości (oczywiście z pomocą minGW)

user image

Co tu mianowicie jest nie tak? Czy jest to wina kompilatora czy moja?
O zaokrągleniach nie bardzo można tu mówić bo funkcja przyjmuje same int'y

0

Ok nie o to chyba autorowi chodziło ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1