Çözüldü C'de faktöriyel hesaplama aracı neden çalışmıyor?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

420957

Hectopat
Katılım
26 Ocak 2021
Mesajlar
2.719
Çözümler
11
Hocalarım kod hata vermiyor ama birşey yazdırmıyor. Sebebi nedir?
Her çarpımda yazdırsın istiyorum. O yüzden döngü içinde yazdırıyorum.
Kod:
#include <stdio.h>
#include <stdlib.h>

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

int main() {

// faktöriyel hesaplama
    int sayi=9;
    int i;
    for(i=8;i<2;i-=1)
    {
        sayi=sayi*i;
        printf("%d",sayi);
    }
    return 0;
}
 
Çözüm
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 main() {

// faktöriyel hesaplama
    int sayi=9;
    int i;
    for(i=8;i>=2;i--)
    {
        sayi=sayi*i;
        printf("%d\n",sayi);
    }
    return 0;
}

Bu çalışacaktır.
Teşekkürler ama buna gerek yoktu. Sadece hatamı öğrenmek istiyordum.
 
Bu arada attığım kod çalışır durumda, denedim.

Teşekkürler ama buna gerek yoktu. Sadece hatamı öğrenmek istiyordum.
Hocam aslında bu attığım kod ile kendi kodunuzu karşılaştırırsanız hatanızı öğrenebilirsiniz. Hata avcılığı yapmak yerine rewrite atmak daha kolay geldi, neyse.

Kodunuzda i'nin nereden geldiğini ve neye göre belirlendiğini anlamadım mesela ben.
 
Hocam oradaki kod i 2'den küçük olunca döngüden çık demek olmuyor mu?
Yoksa oradaki kod i 2'den küçük olduğu sürece döngüde kal demek mi oluyor?
i<2 olarak yazdığın yer koşul kısmı. i başlangıçta 8 olduğu için i<2 koşulu hiçbir zaman doğru olmayacak ve döngü hiç çalışmayacak.
 
Sanırım anladığım kadarıyla( doğru anladıysam ) Sizin attığınız kod sayı 10 olursa çalışmayacak. Bu da iyi bir şey değil.
 
Teşekkürler ama buna gerek yoktu. Sadece hatamı öğrenmek istiyordum.

İ<2 olarak yazdığın yer koşul kısmı. İ başlangıçta 8 olduğu için i<2 koşulu hiçbir zaman doğru olmayacak ve döngü hiç çalışmayacak.

Hatanı arkadaş doğru açıklamış. Yukarıdan aşağıya indiğin döngülerde benim attığım kod mantığını kullanırsın. Azaltma kısmında ise sayı azaltmanın bir mantığı vardır pre-post araştırman yararına olabilir her zaman i-- veya --i kullanılmaz.
 
Hocam aslında böyle c++ kodları beyin jimnastiği gibi bir şey yorumlarken insan cidden zevk alıyor başkasının yazdığı bir kodu.
 
Hocam aslında böyle c++ kodları beyin jimnastiği gibi bir şey yorumlarken insan cidden zevk alıyor başkasının yazdığı bir kodu.
Hocam katılıyorum, yorumlamak ve rewrite çoğu zaman kolay ve zevkli oluyor ama anlatmak bazen zorlayabiliyor.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…