Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]ni yazdıran bir program…Değerler integer tanımlı olduğu için 12 den sonrasını hatalı tanımlıyor.Programı okumaya başlamadan önce Yukarıdaki linkten nasıl hesaplandığını öğrenebilirsiniz.(Dil yarı Türkçe Yarı İngilizce oldu bu seferlik kusura bakmayın)
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h>
#include <stdlib.h>
//Pascal triangle in this example contains
//Lazım olan fonksiyonlarımız
int factorial(int);//Faktöriyel hesaplayabilmemiz için
int C(int,int);//Kombinasyonu hesaplayabilmemiz için
void space(int);//Üçgene şeklini verebilmemiz için gerekli boşlukları koymamızı sağlıyor
void writer(int,int);//Her satırı yazdırmamızı sağlayan fonksiyon
//Öncelikle
int main()
{
int last,sender;
do
{
printf("Enter a number from 0 or larger");
scanf ("%d",&last);
}
while(last<0);
for(sender=0; last>=sender; sender++)
writer(sender,last);//Her satırın yazılışını bu fonksiyon ile sağlayacağız
getch();
return 0;
}
//****space printer****
void space(int space)
{
int counter;
for(counter=0; space>=counter; counter++)
{
printf(" ");
}
}
//*******factorial*****
int factorial(int incoming)
{// tek değer alır. 1'den gelen sayıya kadar olan sayıları 1'er artırarak çarpar. Cevap zaten o sayının faktoriyeli olur
int counter,result=1;
for(counter=1; incoming>=counter; counter++)
{
result*=counter;
}
return result;
}
//***combination calculate***
int combinasyon(int n,int r)
{//İki tane değer alır Biri hangi satırda olduğu diğeri de kaçıncı sayı olduğu. Örnek:
// 1 1.satır
// 1 1 2.satır
// 1 2 1 3.satır
// 1 3 3 1 4.satır buradaki ilk 3 sayısı 2. sayıdır
int result;
result=factorial(n)/(factorial(r)*factorial(n-r));//Sayının hesaplanması için gerekli formul
return result;//bulduğumuz sayıyı döndürüyoruz
}
//*********printer***********
void writer(int incoming,int last)
{//İki tane değerimiz geliyor biri son değer biri'de kaçıncı satırda olduğumuz bilgisi
int counter;
space(last-incoming);//son değerden ilk değeri çıkararak üçgenin soldan kaç birim uzaklıkta olması gerektiğini ayarlıyoruz
for(counter=incoming; counter>=0; counter--)
printf("%4d",combinasyon(incoming,counter));//3 boşluk koyup(yazılacak olan sayı 2 basamaklı ise 2 boşluk koyacaktır)
//sayımızı kombinasyon fonksiyona hesaplatıp gerkeli cevabı aldıktan sonra yazdırıyoruz
printf("\n");
}