C
Görev tamamlama
CompleteTask ile görev durumunu güncellemeyi öğrenirsin.
complete_task fonksiyonu
Bir görevi tamamlandı işaretlemek için complete_task fonksiyonu yazıyoruz. Görevin done alanını 1 yapar.
void complete_task(struct Task tasks[], int id) {
tasks[id - 1].done = 1;
}
id - 1 kullanırız çünkü kimlikler 1'den başlar ama dizi indisleri 0'dan. Bu yüzden 1 tabanlı kimliği 0 tabanlı indise çeviririz.
1 tabanlı kimlik, 0 tabanlı indis
Görev kimlikleri 1'den başlar (ilk görevün kimliği 1). Ama C dizileri 0'dan başlar. Bu yüzden tasks[id - 1] yazarak 1 tabanlı kimliği 0 tabanlı indise çeviririz.
complete_task(tasks, 1); /* tasks[0].done = 1 */
complete_task(tasks, 2); /* tasks[1].done = 1 */
Bu ayrım kullanıcı dostu kimliklerle dizi erişimini uzlaştırır. Kullanıcı 1 girer, program 0 tabanlı kullanır.
Uygulama complete_task fonksiyonunu ekle
Aşağıdaki koda void complete_task(struct Task tasks[], int id) fonksiyonunu ekle. İçinde tasks[id - 1].done = 1; yaz. main içinde list_tasks çağrısından önce complete_task(tasks, 1); çağrısı ekle (ilk görevi tamamlandı yap). Çıktı 1 Alışveriş 1 ve 2 Spor 0 olmalı.
Örnek çözümü göster
#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);
}
}
void complete_task(struct Task tasks[], int id) {
tasks[id - 1].done = 1;
}
int main(void) {
struct Task tasks[10];
int count = 0;
count = add_task(tasks, count, "Alışveriş");
count = add_task(tasks, count, "Spor");
complete_task(tasks, 1);
list_tasks(tasks, count);
return 0;
}
Kendini test et
-
Tamamlama kavramlarını eşleştir
- done = 1
- tamamlandı
- done = 0
- bekliyor
- id - 1
- dizi indisi
- tasks[i]
- görev dizisi
-
Bir görevi tamamlandı olarak işaretlemek için ne yapılır?
- tasks[i].id = 1
- tasks[i].title = "tamam"
- tasks[i].done = 1
- tasks[i] = NULL
Cevabı göster
tasks[i].done = 1 — done alanını 1 yapmak görevi tamamlandı işaretler.
-
Tamamlandı yap
tasks[id].____; /* görevi tamamlandı yap */
Cevabı göster
tasks[id].done = 1; /* görevi tamamlandı yap */
Sıradaki ders: Birleştirme