C'de Yıldızlar İle Şekil Çizme
11735 ワード
Yıldız ile üçgen çizimi
int main()
{
int i,j;
for(i=0;i<6;i++)
{
for(j=0;j<i;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
この整数は、完全な整数ではありません. i ifademiz 0'dan başlayıp 6'ya kadar gidecek fakat 6 dahil olmayacak. i'nin aldığı her değerde içindeki for döngüsüde i nin değeri kadar dönecek. Bunu nerden anlıyoruz diyorsanız eğer, j
*
**
***
****
*****
Burada oluşan üçgenin tersini oluşturmayı istersek eğer işler biraz değişiyor.
int main()
{
int i,j;
for(i=6;i>=0;i--)
{
for(j=1;j<=i;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
Tekrardan i ve j değişkenlerini tanımlıyoruz. İlk for döngümüzdeki mantık şudur; i'yi 6 ya eşitledik ki bu istediğiniz bir sayı olabilir. Ona göre de üçgeniniz büyüyecektir. Sonra
i>=0
yaptık ki bu i sıfır ve sıfırdan büyük oldukça döngü devam etsin diyor bize. Eğer ki i değeri sıfırdan küçük Olursa döngü duracaktır. i--
ise i değerinin bir bir azalmasını ifade ediyor.Temel mantığımız, dışta olan döngümüz 6 kez kendini tekrar edecek ve içerideki döngümüz ise kendini i'nin değeri kadar tekrar edecek. Örneğin, i=6 olduğunda içerisinde olan for döngüsü 6 kez ekrana
*
bastıracak. Oluşan şeklimiz ise aşağıda görüldüğü gibidir.******
*****
****
***
**
*
Şimdi ise sol taraftan boşluklar vererek bir üçgen oluşturalım. Bu kısımda farklı olarak kullanıcıdan bir sayı girmesini isteyeceğiz ve döngümüzde bunu kullanacağız.
int main()
{
int i,j,n;
printf("n: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)// n-i, 5-1'den 4 tane boşluk koy demek
{
printf(" ");
}
for(j=1;j<=i;j++)//Burada boşluktan sonra bir tane yıldız koyar
{
printf("*");
}
printf("\n");
}
return 0;
}
İlk olarak
printf("n: ");
yazarak kullanıcıdan bir n değeri girmesini istiyoruz. Sonrasında scanf("%d",&n);
yazarak aldığımız n değerini hafızaya kaydediyoruz. Bu kısmı anladıktan sonra dış kısımda olan for döngümüzü inceleyelim. i=1
ile başlangıç değerimizi belirliyoruz. Sonrasında i<=n
ile bitiş değerimizi belirliyoruz ve son olarak i++
ile ise i değerini bir bir arttırıyoruz.iç kısımda olan ilk for döngüsünde başlangıç değerimiz 1'dir.
j<=n-i
dediğimiz kısım bizim bitiş değerimiz ama aslında bize diyor ki n-i yani kullanıcı n yerine 5 değerini girerse ve bizimde başlangıç değerimiz 1 olduğu için 5-1'den 4 tane boşluk koy diyor aslında.döngüsününkoyduğuboşluklarınyanınayıldızbastırırのdöngümüzisebiröncekiのİkinci. Mesela 4 tane boşluk koyduk ilk döngüde, ikinci döngüde ise yanına 1 tane yıldız koyacak.ソンライ イルク ドンギュ 3 ボシュルク コヤチャク、イキンチ ドンギュ イセ 2 タネ ユルドゥズ コヤチャク. Bu böyle 0 olana kadar devam edecek. Sonuç olarak çıktımız şu şekilde olacak;
*
**
***
****
*****
Son olarak tam bir üçgen çizmeyi öğrenip bu postu burada bitireceğiz. Bir önceki yaptığımız for döngüsünden çok bir farkı yok aslında.
int main()
{
int i,j,n;
printf("n: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
for(j=1;j<=2*i-1;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
döngüsünügörüyoruzのdöngüsüiçindekiikinciのBuradadiğerkısımlardanfarklıolarak.続きを読む 5 dakika anlamaya çalıştığınızda mantığı çok basittir aslında. Bize demek istiyor ki,
i=1
olduğunda j<=2*i-1
in değeri 2*1-1'den 1 oluyor ve j<=1 oluyor aslında bu da bize bir kere ekrana yıldız bastır demektir.Çıktısı ise şu şekildedir;
*
***
*****
*******
*********
Reference
この問題について(C'de Yıldızlar İle Şekil Çizme), 我々は、より多くの情報をここで見つけました https://dev.to/enisksz/cde-yildizlar-ile-sekil-cizme-k94テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol