CodeBlanks Logo Icon CodeBlanks

Görev listeleme

  • C kursu
  • Başlangıç
  • Ders 85/116
  • 6 dk

ListTasks ile görevleri formatlı yazdırmayı öğrenirsin.

list_tasks fonksiyonu

Tüm görevleri yazdırmak için list_tasks fonksiyonu yazıyoruz. Bir for döngüsü 0'dan count'a kadar döner ve her görevi yazdırır.

void list_tasks(struct Task tasks[], int count) {
    for (int i = 0; i < count; i++) {
        printf("%d %s %d\n", tasks[i].id, tasks[i].title, tasks[i].done);
    }
}

Fonksiyon void döndürür; yalnızca yazdırır, bir şey değiştirmez. count kadar görev yazdırılır.

for döngüsü ile gezme

for (int i = 0; i < count; i++) kalıbı 0'dan başlar ve count'a kadar (hariç) her elemanı gezer. i indis, tasks[i] ise o indisteki görevdir.

for (int i = 0; i < count; i++) {
    printf("%d %s\n", tasks[i].id, tasks[i].title);
}

Bu kalıp dizilerin gezilmesinde standarttır. count sınırı dizinin kullanılan kısmını belirler.

Uygulama list_tasks fonksiyonunu ekle

Aşağıdaki koda void list_tasks(struct Task tasks[], int count) fonksiyonunu ekle. İçinde for (int i = 0; i < count; i++) döngüsü ile her görevi printf("%d %s %d\n", tasks[i].id, tasks[i].title, tasks[i].done); biçiminde yazdır. main içindeki iki printf yerine list_tasks(tasks, count); çağrısı koy. Çıktı 1 Alışveriş 0 ve 2 Spor 0 olmalı.

Başlangıç kodu

main.c
#include <stdio.h>
#include <string.h>

struct Task {
    int id;
    char title[50];
    int done;
};

int add_task(struct Task tasks[], int count, const char *title) {
    tasks[count].id = count + 1;
    strcpy(tasks[count].title, title);
    tasks[count].done = 0;
    return count + 1;
}

int main(void) {
    struct Task tasks[10];
    int count = 0;
    count = add_task(tasks, count, "Alışveriş");
    count = add_task(tasks, count, "Spor");
    printf("%d %s %d\n", tasks[0].id, tasks[0].title, tasks[0].done);
    printf("%d %s %d\n", tasks[1].id, tasks[1].title, tasks[1].done);
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>
#include <string.h>

struct Task {
    int id;
    char title[50];
    int done;
};

int add_task(struct Task tasks[], int count, const char *title) {
    tasks[count].id = count + 1;
    strcpy(tasks[count].title, title);
    tasks[count].done = 0;
    return count + 1;
}

void list_tasks(struct Task tasks[], int count) {
    for (int i = 0; i < count; i++) {
        printf("%d %s %d\n", tasks[i].id, tasks[i].title, tasks[i].done);
    }
}

int main(void) {
    struct Task tasks[10];
    int count = 0;
    count = add_task(tasks, count, "Alışveriş");
    count = add_task(tasks, count, "Spor");
    list_tasks(tasks, count);
    return 0;
}

Beklenen çıktı

1 Alışveriş 0
2 Spor 0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Tüm görevleri listelemek için ne kullanılır?

  • Tek bir printf
  • for döngüsü ile tüm görevler Doğru cevap
  • if deyimi
  • switch

Açıklama: for döngüsü 0'dan count'a kadar tüm görevleri gezer.

2 Listeleme kavramlarını eşleştir

Kavram Anlamı
list_tasks listeleme fonksiyonu
for döngü
count görev sayısı
%d %s %d yazdırma biçimi

3 Döngü sınırı

Soru
for (int i = 0; i < ____; i++) { /* görev yazdır */ }
Cevap
for (int i = 0; i < count; i++) { /* görev yazdır */ }

Açıklama: count kadar görev yazdırılır.

Başlangıç bölümündeki tüm dersler