C ++ Sorusu

math kütüphanesindeki pow() ile kolayca yapabilirsin, soruların bir zorluğu yok. Ayrıca istenilen C kodu, C++ diye yazılmış başlığa, hangisi doğrusu?

İlk 25 basamağını istiyor, döngüye sokmayı da bildiğini varsayıyorum.
 
Daha yeni başlayınca sürekli hata alıyorum
Dev C++ 5.11 de
 
Yukarıdaki faktöriyel olmuyor

Kendi fonksiyonunu yazman senin için daha iyi olur. Hazır kütüphane kullandırtmıyorlar ödevde.
Kodunu yazıp işini kolaylaştırmak istemiyorum.

İpucu:
Döngüde fact(int counter) gibi bir fonksiyon çağırımı yaparsan, döngüdeki sayı arttıkça sana o sayının faktöriyelini verecek bir değer dönecek.
 
 

Dosya Ekleri

  • 16103637084911417872149099275109.jpg
    206,4 KB · Görüntüleme: 58
Kod:
#include<stdio.h>
#include<math.h>
int fakt (int us)
{
        if (us == 1 || us == 0)
                return 1;
        else
                return us* fakt(us - 1);
}

int main(){

int us;
int sayi;
int toplam =1;

printf("sayigir");
scanf("%d",&sayi);

for (us=1;us<25;us++){

    if (sayi%2==1)
        toplam=toplam-pow(sayi,us)/fakt(us);
    else if (sayi%2==0)
        toplam=toplam+pow(sayi,us)/fakt(us);
    }
  
    printf("sonuc= %d",toplam);
  
    return 0;
}
Bu şekilde olmuyor faktöriyel olmuyor bir türlü
 

C:
#include<stdio.h>
#include<math.h>
int fakt (int us)
{
    if (us == 1 || us == 0)
        return 1;
    else
        return us * fakt(us-1);
}
int main(){
 
int temp;

temp = fakt(4);
printf("%d",temp);

return 0;
}

Önce fonksiyonunun çalışıp çalışmadığını test edelim. Diğerlerini yorum satırına alıp, şu kod parçacığını ekleyip çıktıyı gör. Problem olmaması gerek.


Debug yapmayı biliyorsan nerede patladığını daha rahat görebilirsin, yapmayı bilmiyorsan çok faydalı. Öğren.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…