Şimdi Ara

c pow()

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
7.041
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • #include"stdio.h"
    #include"conio.h"
    #include"math.h"
    main()
    {
    int sonuc;
    int x,y;
    printf("x gir\n");
    scanf("%d",&x);
    printf("y gir\n");
    scanf("%d",&y);

    sonuc=pow(x,y);


    printf("sonuc=%d",sonuc);
    getch();}



    x'i 5 y'i 3 girdiğimde 124 sonucunu verior diğer sayılar verdiğimde sonuc doğru oluor nedeni nedir?? cevaplarsanız sevinirim



  • http://www.cplusplus.com/reference/clibrary/cmath/pow/

    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.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.