sayfa başı

25 Şubat 2019 Pazartesi

C Çalışma Soruları – 13 (döngüler)

Necati Ergin Hocamın kendi sayfasında bulunan çalışma sorularını ve cevaplarını burada yanıtlamaya çalıştım. Sorulara buradan ulaşabilirsiniz.

Aşağıdaki C programı çalıştırıldığında bu programın çıktısı ne olur?


#include<stdio.h>
 
int main()
{
    int i, k;

    for (i = 1, k = 1; k; printf("%d%d", i, k))
        k = i++ <= 3;

        return 0;
}

Yanıt:

Sorunun yanıtına geçmeden önce for döngüsünün nasıl çalıştığına bakmak lazım. İlk olarak aşağıdaki resim for döngüsünün akış diyagramını incelemek gerekir.
Yukarıdaki bilgiler ile adım adım aşağıdaki kodu koşalım ve her bir adımda çıktıları yazalım. i++ dikkat etmeyi unutmayalım. Çünkü bu satırda i değeri değişmezken i++ etkisi ile i nin kullanıldığı bir sonraki işlemde i değeri bir artmış olacak.
  for (i = 1, k = 1; k; printf("%d%d", i, k))
       k = i++ <= 3;

i=1: → k = 1 → printf çıktısı: 21 (i++ etkisi ile i=2 olarak işlendi)
i=2: → k = 1 → printf çıktısı: 31 (i++ etkisi ile i=3 olarak işlendi)
i=3: → k = 1 → printf çıktısı: 41 (i++ etkisi ile i=4 olarak işlendi)
i=4: → k = 0;→ printf çıktısı: 50 (i++ etkisi ile i=5 olarak işlendi)

k=0 olduğu için döngü akışı biter. Sonuç olarak çıktı 21314150 olur.





Hiç yorum yok:

Yorum Gönder

Son Ütücü