İç içe for döngüleriyle yıldız/rakam örneklerini dene, çözümlerine bak. Görsel olarak en akılda kalıcı olan onlar.
C kodlama dersi alıyoruz lakin iç içe for döngülerini kavrayamadım. Önerdiğiniz bir kaynak var mı? Kolayca, rahatça anlayabileceğim çok karmaşık geldi bana.
Anlayamadımdan kasıt mantığını mı? Yoksa nasıl yapıldığını mı?
Mantık dersen iki boyutlu dizileri için, örneğin okulda bulunan sınıfları sıralamak istiyorsun (sınıflar 1-12 arası, şubeler a-D arası gidiyor olsun).
1. for ile sayıları, 2. for ile harfleri döndüreceksin.
Yani 1. for 1 diyecek ve buradan itibaren 2. for ile 1a, 1b, 1C, 1D yazacak, sonra 1. for 2 diyecek, 2 for 2a, 2b, 2C, 2D diyecek.
Teşekkür ederim bunu inceleyeceğim.Al sana hazır anlattığım bir konu.
Rehber: İçi İçe Döngüler (Nested Loops)
Programlama konusunda emek isteyen konulardan biri de iç içe döngülerdir. Bu kavramın mantığını çözmek için elle adımları kağıda tek tek çizmek gerekir. Bu konunun en güzel pekiştirmesi ise merdiven - veya üçgen - yapımıdır. Merdiven örneği için adımları kağıt üstünde yazdığınızda fark...www.technopat.net
Tam olarak mantığı ve nasıl yapıldığıydı şu an anlattığın az çok kafam da canlandı yani mesela bunun gibi anlatım yapan bir YouTube kanalı veya kaynak varsa daha iyi olabilir ama bu örneğini deneme yapacağım bir, anlamaya çalışacağım kodları yazıp.
#include <stdio.h>
int main()
{
int i = 1;
int k = 0;
for(i; i<20;) // i, 1 olarak döngüye başlar.
{
for(k; k<10; k++) // i 1'ken 2.döngüye girer. k bu sırada 0'dır.
// i + k, i + k, i + k, i + k
printf("%d-", i+k); // 1 + 0, 1 + 1, 1 + 2, 1 + 3 şeklinde k 10'a gelinceye kadar devam eder.
k = 0; // k, 10 olduktan sonra 0'a eşitlenir.
i += 10; // i, 2.döngüden sonra 10 arttırılır. 1.döngüde i, 10 olarak başlar ve 20 olana kadar tekrar eder.
}
printf("\n");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main() {
int i,j,a,temp, k, l;
char d;
do {
char word[20]={0};
a=0;
printf("\nBir Kelime Girin ---> "); scanf("%s",&word);
printf("\nGirdiginiz Kelime ---> %s",word);
for(i=0;i<20;i++)
{
if(word[i]>0) a++; }
//Yukarıdaki for döngüsünde girilen kelimenin kaç karakterden oluştuğu bulunuyor.
for(k=0;k<a;k++) {
for(j=0;j<k;j++) {
if(word[k]<word[j]) {
temp=word[k];
word[k]=word[j];
word[j]=temp;
}
}
}
//Bu for döngüsünde sıralama işlemi yapılıyor. Sıralama yaparken geçici bir değişken olarak temp kullanıldı.
printf("\n\nKelimenin Alfabatik Sirali Sekli ---> ");
for(l=0;l<a;l++)
printf("%c",word[l]);
printf("\n\nTekrar Denemek Ister Misiniz ? E/H ---> "); d=getch();
} while ( d=='e' || d=='E' );
getch();
}
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.