Menu
Coddy logo textTech

Dostęp do składowych struktury

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

Teraz, gdy potrafisz tworzyć zmienne typu struct, musisz nauczyć się pracować z przechowywanymi w nich danymi. Operator kropki (.) umożliwia dostęp do poszczególnych składowych zmiennej typu struct i ich modyfikowanie.

Składnia dostępu do składowych struktury jest prosta:

structVariable.memberName

Korzystając z naszego przykładu struktury Point, możesz zarówno odczytywać, jak i zapisywać jej pola:

struct Point p1;

// Zapisywanie wartości w polach struktury
p1.x = 10;
p1.y = 20;

// Odczytywanie wartości z pól struktury
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

Operator kropki działa dokładnie tak samo jak dostęp do każdej innej zmiennej — możesz go używać w przypisaniach, działaniach arytmetycznych, wywołaniach funkcji lub wszędzie tam, gdzie używałbyś zwykłej zmiennej tego typu. Każdy element zachowuje się jak niezależna zmienna zadeklarowanego typu, co pozwala na uporządkowane i intuicyjne operowanie danymi struktury.

challenge icon

Wyzwanie

Łatwy

Utwórz program w C, który demonstruje dostęp do składowych struktury i ich modyfikowanie za pomocą operatora kropki. Twój program powinien:

  1. Zdefiniować struct o nazwie Car z następującymi składowymi:
    • Liczbę całkowitą year do przechowywania roku produkcji
    • Tablicę znaków brand o rozmiarze 20 do przechowywania marki samochodu
    • Liczbę całkowitą mileage do przechowywania aktualnego przebiegu
    • Liczbę zmiennoprzecinkową price do przechowywania ceny samochodu
  2. Utworzyć zmienną Car o nazwie myCar
  3. Wczytać następujące wartości wejściowe i przypisać je do składowych struktury za pomocą operatora kropki:
    • Wczytać liczbę całkowitą określającą rok i przypisać ją do myCar.year
    • Wczytać ciąg znaków określający markę i przypisać go do myCar.brand
    • Wczytać liczbę całkowitą określającą przebieg i przypisać ją do myCar.mileage
    • Wczytać liczbę zmiennoprzecinkową określającą cenę i przypisać ją do myCar.price
  4. Po wczytaniu wszystkich wartości wykonać następujące operacje:
    • Zwiększyć przebieg o 1000 za pomocą myCar.mileage += 1000;
    • Zmniejszyć cenę o 500.0 za pomocą myCar.price -= 500.0;
  5. Wypisać informacje o samochodzie, używając operatora kropki, aby uzyskać dostęp do każdej składowej, w dokładnie takim formacie:
    • Car Details:
    • Year: [year]
    • Brand: [brand]
    • Mileage: [mileage]
    • Price: [price]

To wyzwanie sprawdza, czy rozumiesz zastosowanie operatora kropki zarówno do odczytywania, jak i zapisywania składowych struktury. Przećwiczysz przypisywanie wartości do składowych struktury, wykonywanie na nich operacji arytmetycznych oraz odczytywanie ich w celu wypisania danych.

Na przykład, jeśli dane wejściowe to:

2020
Toyota
50000
25000.50

Oczekiwane wyjście:

Car Details:
Year: 2020
Brand: Toyota
Mileage: 51000
Price: 24500.50

Spróbuj swoich sił

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

// TODO: Zdefiniuj tutaj strukturę Car

int main() {
    // TODO: Utwórz zmienną typu Car o nazwie myCar
    
    // Wczytaj wartości wejściowe
    int year;
    char brand[20];
    int mileage;
    float price;
    
    scanf("%d", &year);
    scanf("%s", brand);
    scanf("%d", &mileage);
    scanf("%f", &price);
    
    // TODO: Przypisz wartości wejściowe do pól struktury za pomocą operatora kropki
    
    // TODO: Zmień przebieg i cenę zgodnie z instrukcją
    
    // TODO: Wyświetl dane samochodu za pomocą operatora kropki
    printf("Car Details:\n");
    // Wyświetl tutaj rok, markę, przebieg i cenę
    
    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