🔔 Çevrimdışı bildirim almak ister misiniz?
Bir konuya etiketlendiğinizde, özel mesaj aldığınızda, bir mesajınız alıntılandığında forumda olmasanız bile anlık bildirim almak için lütfen izni verin.
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");
}