C ++ Sorusu

Aselkom

Femtopat
Katılım
11 Ocak 2021
Mesajlar
6
Daha fazla  
Cinsiyet
Erkek
C++ Soru:

20210111_140113.jpg
 
Daha yeni başlayınca sürekli hata alıyorum

Maksat ödev yapmak değil, yardımcı olmak. Kodlarını burada paylaş, düzeltip yardımcı olayım. Hata almak güzeldir daha iyi öğrenirsin.

Dev C++'da C de C++ da yazabilirsin. Soruda istenen doğru sanırım. C++ değil, C kodu isteniyor.
 
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.
 
Maksat ödev yapmak değil, yardımcı olmak. Kodlarını burada paylaş, düzeltip yardımcı olayım. Hata almak güzeldir daha iyi öğrenirsin.

Dev C++'da C de C++ da yazabilirsin. Soruda istenen doğru sanırım. C++ değil, C kodu isteniyor.
 

Dosya Ekleri

  • 16103637084911417872149099275109.jpg
    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ü
 
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.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı