Merhaba arkadaşlar.
C dilinde pow() fonksiyonunu kullanmadan sayıların kuvvetlerini hesaplayacak bir program yazmaya çalışıyorum.Programın pozitif kuvvetlerde sorunsuz çalışırken bir türlü negatif kuvvtelerde çalıştıramadım.Negatif kuvvetler için uygun bir döngü yazmama rağmen her zaman sonuç sıfır çıkmaktaydı.Örneğin iki üzeri ikiyi hesaplayabilirken, 2 üzeri -2 sonucunu sıfır bulmakta.
- [ Tüm kodu seç ] [ Yeni Pencerede Göster ]
#include<stdio.h> #include<conio.h> usal(double a,int b) { double sonuc=1; int i; if(b<0) { for(i=0;i>b;i--) { sonuc*=1/a;//burası sıfır sonucu çıkınca burayı sonuc*=a bicminde düzelttim } //sonuc=1/sonuc şeklinde bir ekleme yaptım.Ama gene aynı sonuç çıktı } else { for(i=0;i<b;i++) { sonuc*=a; } } return sonuc; } main() { double sonuc,taban; int us; deger: system("cls"); printf("Taban ve us degerlerini giriniz.\n");scanf("%lf%d",&taban,&us); if(taban==0 && us==0) { printf("Sifir uzeri sifir belirsizdir.Deavm etmek icin bir tusa basiniz.\n"); getch(); goto deger; } sonuc=usal(taban,us); printf("Sonuc:%f",sonuc); getch();return 0; }