Bu gördüğün standart bir bubble sort algoritmasıdır. Kod verilen kelimeler içinde geziyor. Mesela "merhaba"yı düşün. Döngüye girdiğinde m geliyor ardından iç döngüde de m geliyor. Sonra iç döngü artmaya başlıyor ve e harfine geçiyor. M harfi E'den büyük olduğu için bir işlem yapılmıyor. Yani bu bir büyükten küçüğe sıralama. Daha sonra iç döngü r harfine geçiyor ve tüm kelimeyi bitirdikten sonra dış döngü e harfine geçiyor ve tüm harfleri e harfi ile kıyaslıyor.
Bunu anlamanın tek yolu eline kağıt ve kalem alıp yazarak çalışman. Üşenirsen hiçbir şey öğrenemezsin.
1'Den başlayıp 20'ye kadar say. Artık iç içe döngüleri yapabilirsin.
C:#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; }
1.döngü, i = 1 olarak başla.
2.döngü, 0'dan 9'a kadar say, sayarken bu sayıları i ile topla ve ekrana yazdır.(İ+0, i+1, i+2, i+3)
1.döngü, değerini 10 arttır.
2.döngü, 0'dan 9'a kadar say, sayarken bu sayıları i ile topla ve ekrana yazdır.
Teşekkürler tavsiyelerinizi dinleyeceğim.
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.
C:
#include<stdio.h>
main()
{
int i,j,k;
char sinif;
for(i=1;i<=12;i++)
{
printf("%3d",i);
for(sinif=97;sinif<=100;sinif++)
{
printf("%c",sinif);
break;
}
}
}
Hocam yazdırmak istediğimi kavradım, fakat burada beceremedim 1'den 12'ye kadar 1A 12A diye gidiyor ondan sonra kesiliyor. Nasıl düzeltebilirim? Basit iki hatam var ama ne olduğu çözemedim.
Son düzenleyen: Moderatör: