: return(fact factorial(fact-1)); fact =? Edit: bu kod derleniyor mu?... Algoritman da yanlış gzüküyor.. Programın amacı ne? Bir de fonksiyon kendi kendini çağırıyor? zyineleme kullanmış hocam yanlış olan bir şey yok.. ayrıca int ın boyutlarını aştığın için yle oluyor (: long int olarak ya da double olarak tanımlarsan sorun ortadan kalkar ama fazla kasmaya gerek yok altı üstü faktoriyel programı Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.

return(fact factorial(fact-1)); fact =? Edit: bu kod derleniyor mu?... Algoritman da yanlış gzüküyor.. Programın amacı ne? Bir de fonksiyon kendi kendini çağırıyor? Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... .. Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."

hata oldu Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... .. Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."

#include #include using namespace std;int main { unsigned fakt; //int fakt; int say, i; cin>>say; fakt=1; for (i=say;i>1;i--) cout<< fakt<<endl; system ; return EXIT_SUCCESS;} c++ kodu 10 için doğru veriyor.. Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... .. Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."

Sonucun değerini double yap. int 32000 üstünde çalışmaz. Mühendis kahveyi projeye dnüştüren bir insan evladıdır.

buyur hacı bunu dene <br> void faktoryel { #define BASAMAK 300 unsigned s, i, aktif, dizi = ; dizi =s=1; aktif=BASAMAK-1; while { for(i=0;i<BASAMAK;++i) dizi =s; for(i=1;i<BASAMAK;++i) ++s; } for printf ;} <br> yeterli alan olursa 400 milyona kadar faktoryel alabilirsin basamagı yükseltmen yeter

Faktoryel 10'a 0 diyor mesela.. Bi nedeni vardı, int değerlerin uzunlugu hakkında.. Neydi hocalar? #include int main int factorial

: Sonucun değerini double yap. int 32000 üstünde çalışmaz. int tanımlı bir sayı double yapmak gerekszidir her halde fakat unsigned tanımlamak daha doğrudur... Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... .. Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."

int derleyicinin türüne ve ayarına gre short int yada long int e çevrilecektir. Vc++ için default olarak long int yani 32 bit signed integer olacaktır. short int: -32768...32767 arası değer alır, long int ise -2^31...+2^31-1 aralığında değer alabilir yani -2 milyar küsürden +2 milyar küsüre. Unsigned yaparsan bu türleri alabildiği max değer 2 katına çıkar fakat negatif değer alamaz, alabildiği en küçük değer 0 olur. Sen int veri türüyle daha büyük sayılarla çalışamazsın. Arkadaşın dediği gibi double kullanabilirsin fakat o da 14 digitten sonra precisonu yitirir. Faktoriyel programi için kafani kariştirmaya değmez, ilerde yapıları fln grdüğünde anlarsın bunu nasıl aşabileceğini. The king is bleeding.