C'de faktöriyel bulan program yazma

Me_vs_world

Hectopat
Katılım
15 Temmuz 2019
Mesajlar
24
int i;
int sayac;
printf("Bir sayi giriniz: ");
scanf("%d",&sayac);
for(i=sayac;i>0;i--)
{sayac=i;
printf("%d\n",sayac);
}
Bu kadarını hallettim. Çalıştır tuşuna basınca girdiğiniz sayıdan 1'e kadar ki sayıları yazıyor fakat gerisini nasıl yapacağımı bulamadım bri türlü. Yardımcı olur musunuz?
 
Son düzenleyen: Moderatör:
C bilmesem de A ve B adında değişken belirleyin. A söylenen sayı olsun ve sonrasında bir eksilsin. B ise A'nın o anki değeri ile çarpımı olsun. Yani B=B*A olacak her döngüde. Döngü sonunda ise A=A-1 diyeceksiniz. Tabii bu ifadeler C'de geçerli mi bilmiyorum ama bir şekilde halledilebilirler.
 
B*=A
A-=A
Olarak değiştirsek olur mu? Biraz unutmuşum da.
Python için konuşuyorsanız;
B*=A ile B=B*A aynı işlevdedir.
A-=A ile A=A-1 aynı işlevde değil.
A-=1 ile A=A-1 aynı işlevde olur.

Ben bu şekilde kullanmayı sevmediğim için öyle örnek vermiş bulundum.
 
int toplam=1 tanıt bir tane.
for(i=1;i<=sayac;i++){
toplam=toplam*i;
}
burdaki toplam sayac değişkenine atadığın sayının faktöriyelini verir.
int i;
int sayac=1;
int toplam=1;
printf("Bir sayi giriniz: ");
scanf("%d",&sayac);
for(i=1;i<=sayac;i++)
{toplam=toplam*i;
printf("%d\n",toplam);
} şu şekilde yaptım ve sonucu doğru veriyor fakat sonuçtan önceki basamakları da yazıyor onlar çıkmadan bu kodu nasıl yazabilirim
 
int i;
int sayac=1;
int toplam=1;
printf("Bir sayi giriniz: ");
scanf("%d",&sayac);
for(i=1;i<=sayac;i++)
{toplam=toplam*i;
printf("%d\n",toplam);
} şu şekilde yaptım ve sonucu doğru veriyor fakat sonuçtan önceki basamakları da yazıyor onlar çıkmadan bu kodu nasıl yazabilirim

Genelde recursive olarak çözülür ama iterative olarak da çözebilirim isterseniz.

C:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int faktoriyel(int a){
    if(a == 0) return 1;
    else return a * faktoriyel(a-1);
}

int main(int argc, char *argv[]) {
    
    int a;
    scanf("%d", &a);
    printf("Sayinin faktoriyeli: %d", faktoriyel(a));

    return 0;
}
 
int i;
int sayac=1;
int toplam=1;
printf("Bir sayi giriniz: ");
scanf("%d",&sayac);
for(i=1;i<=sayac;i++)
{toplam=toplam*i;
printf("%d\n",toplam);
} şu şekilde yaptım ve sonucu doğru veriyor fakat sonuçtan önceki basamakları da yazıyor onlar çıkmadan bu kodu nasıl yazabilirim
printf("%d\n",toplam);
bunu forun dışına yaz.
 
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.

Yeni konular

Geri
Yukarı