Menu
Coddy logo textTech

Deklarowanie i używanie enum

Część sekcji Logika i sterowanie przepływem ścieżki C w Coddy. Lekcja 56 z 63.

Teraz, gdy zdefiniowałeś enum, możesz tworzyć zmienne tego typu wyliczeniowego i przypisywać im znaczące wartości. Właśnie tutaj enumy pokazują swoją prawdziwą moc — zamiast używać mylących liczb, korzystasz z opisowych nazw.

Aby zadeklarować zmienną typu wyliczeniowego, użyj tej samej składni co przy deklarowaniu dowolnej innej zmiennej:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Możesz następnie przypisać wartości tym zmiennym, używając nazwanych stałych z wyliczenia:

today = WEDNESDAY;
weekend_day = SATURDAY;

Porównaj to z używaniem surowych liczb: today = 2; i weekend_day = 5;. Wersja z wyliczeniem od razu informuje, z jakim dniem pracujesz, podczas gdy liczby wymagają pamiętania, co reprezentuje każda wartość. Dzięki temu Twój kod jest znacznie bardziej czytelny i mniej podatny na błędy.

challenge icon

Wyzwanie

Łatwy

Utwórz program w języku C, który demonstruje deklarowanie i używanie zmiennych typu enum w prostym systemie zarządzania zadaniami. Twój program powinien:

  1. Zdefiniować typ enum o nazwie TaskStatus z następującymi stałymi w tej dokładnej kolejności:
    • PENDING
    • IN_PROGRESS
    • COMPLETED
    • CANCELLED
  2. W funkcji main:
    • Zadeklarować trzy zmienne typu enum TaskStatus o nazwach task1, task2 i task3
    • Wczytać z wejścia trzy liczby całkowite reprezentujące status każdego zadania (0, 1, 2 lub 3)
    • Przypisać odpowiednie wartości enum do każdej zmiennej zadania na podstawie danych wejściowych:
      • Jeśli dane wejściowe to 0, przypisać PENDING
      • Jeśli dane wejściowe to 1, przypisać IN_PROGRESS
      • Jeśli dane wejściowe to 2, przypisać COMPLETED
      • Jeśli dane wejściowe to 3, przypisać CANCELLED
    • Wypisać status każdego zadania, używając wartości enum w dokładnie takim formacie:
      • Task 1 status: [numeric_value]
      • Task 2 status: [numeric_value]
      • Task 3 status: [numeric_value]
    • Policzyć i wypisać liczbę zadań w każdej kategorii statusu:
      • Pending tasks: [count]
      • In progress tasks: [count]
      • Completed tasks: [count]
      • Cancelled tasks: [count]
    • Obliczyć i wypisać łączną liczbę aktywnych zadań (zadań, których status to PENDING lub IN_PROGRESS) w dokładnie takim formacie: Active tasks: [count]

To wyzwanie pokazuje, jak zmienne typu enum zwiększają czytelność kodu, zastępując surowe liczby znaczącymi nazwami. Przećwiczysz deklarowanie zmiennych enum, przypisywanie wartości enum na podstawie danych wejściowych, używanie stałych enum w porównaniach oraz wykonywanie obliczeń z użyciem wartości enum.

Spróbuj swoich sił

#include <stdio.h>

// TODO: Zdefiniuj tutaj enum TaskStatus

int main() {
    // Wczytaj dane wejściowe dla trzech statusów zadań
    int status1, status2, status3;
    scanf("%d", &status1);
    scanf("%d", &status2);
    scanf("%d", &status3);
    
    // TODO: Zadeklaruj trzy zmienne typu enum TaskStatus (task1, task2, task3)
    
    // TODO: Przypisz wartości enum na podstawie danych wejściowych
    
    // TODO: Wyświetl statusy zadań
    
    // TODO: Policz zadania w każdej kategorii
    
    // TODO: Oblicz i wyświetl liczbę aktywnych zadań
    
    return 0;
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C online