23
Kas'10

Her Satirda Azalan Üçgen Sorusu (C Programlama Dili)

Merhaba,

Bu ismini bile bilmediğim üçgen sorusunu açıklamaya çalışacağım:) Bilen banada söylerse sevinirim:)

Üçgenin görüntüsü şu şekilde olmalı:

1

21

321

4321

54321

……

Yani ilk satır 1 olmak üzere her alt satırda bir fazla sayıdan başlayarak 1 azaltacak.

Kodları:

#include <stdio.h>
#include <conio.h>

main(){

   int i,j,satir,sayac=1,islem=1;

   printf("Bu ucgen kac satirli olsun?:"); scanf("%d",&satir);

   //satir sayisi kadar islemlerimiz tekrarlansın.

   for(i=1;i<=satir;i++){

   /*satirsayacı:bir alt satıra inildiğinde usttekı satırın eleman

   sayısından 1 fazlasını alttakı satırda yazmamızı sağlıyor.*/

   sayac++;

         for(j=1;j<sayac;j++){

     //j hep bir artıyor.Bu sayede sayımızı her seferınde azaltabiliyoruz.

         islem=sayac-j;

         printf("%d ",islem);

      }

      printf("\n");

   }

getch();

}

Floyd üçgenine çok benzer bir mantık kullandım.Bir sayaç kullandık, her satirda kaç eleman olacağını belirliyor.İçteki for döngüsünü sayaca kadar çalıştırdık çünkü mesela 2. satırda sayac 3 olacak ve for döngüsü 2 kez dönecek.Bu da 2. satıra 2 elaman yazılacağı anlamına geliyor.

 

Bir eleman yazdıktan sonra diğer elemanın bir az olması lazım.Onun içinde j değikenini kullandım.Ne de olsa döngü dönerken her seferinde j bir artıyor.Sayac’tan j’yi çıkardım.Sayac’tan çıkarmamın sebebi de mesela 3. satıra geçtiğimde sayac 4 oluyor.J’nin ilk değeri de 1 olduğuna göre 4-1=3.Üçüncü satırın ilk elemanı 3 olarak yazılmış oldu.

 

İyi çalışmalar.

Yeni makaleleri E-Mail ile takip edin!