pow() fonksiyonu tanımı gereği int (int, int) şekilde çalışmaz. Hadi diyelim ki senin verdiğin integer değerleri float'a cast etti fakat dönüşü elle cast etmen gerekir. Sana önerim sonuc'u float tanımlayıp o şekilde çalıştırman. sonuc float olunca ekrana da %d şeklinde değil %.0f şeklinde bastırman gerekir (virgül ve sonrası gözükmesin diye 0).
@meniz
modern compilerlar rahatlıkla int'i double cast ederler. sorun orada değil
#include <stdio.h> #include <math.h>
using namespace std;
int main () { int x,y,sonuc; scanf("%d",&x); scanf("%d",&y); sonuc=pow(x,y); printf("%d\n",sonuc); return 0; }
bu sekilde gayet normal calısıor. sen include'ları tırnakla(") yapmıssın, kendi math.h'ını felan mı define ettin?
quote:
Orijinalden alıntı: OnurJAM
@meniz
modern compilerlar rahatlıkla int'i double cast ederler. sorun orada değil
#include <stdio.h> #include <math.h>
using namespace std;
int main () { int x,y,sonuc; scanf("%d",&x); scanf("%d",&y); sonuc=pow(x,y); printf("%d\n",sonuc); return 0; }
bu sekilde gayet normal calısıor. sen include'ları tırnakla(") yapmıssın, kendi math.h'ını felan mı define ettin?
Valla DevC++'ta gayet modern ama bi çok casting sorunu yaşıyo Ben hiç dikkat etmemiştim " lara
Nasıl olsa cast eder deyip double yerine int ile çağırmak kötü bir alışkanlık.
iyi bir alışkanlık olduğunu söylediğimi hatırlamıyorum.