Menu
Coddy logo textTech

Powtórka: tablica struktur

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

challenge icon

Wyzwanie

Łatwy

Utwórz program w C, który zarządza systemem ewidencji produktów przy użyciu tablicy struktur. Twój program powinien:

  1. Zdefiniować struct o nazwie Product z następującymi składowymi:
    • Tablicę znaków name o rozmiarze 30
    • Liczbę zmiennoprzecinkową price
    • Liczbę całkowitą stock
  2. Napisać funkcję o nazwie findMostExpensive, która:
    • Przyjmuje jako parametry tablicę struct Product oraz liczbę całkowitą size
    • Zwraca liczbę całkowitą reprezentującą indeks produktu o najwyższej cenie
    • Używa pętli do iterowania po wszystkich produktach i porównywania ich cen
    • Zwraca indeks pierwszego znalezionego produktu o maksymalnej cenie
  3. Napisać funkcję o nazwie calculateTotalValue, która:
    • Przyjmuje jako parametry tablicę struct Product oraz liczbę całkowitą size
    • Zwraca liczbę zmiennoprzecinkową reprezentującą całkowitą wartość zapasów
    • Oblicza całkowitą wartość, sumując (cena × stan magazynowy) dla każdego produktu
  4. Napisać funkcję o nazwie findLowStock, która:
    • Przyjmuje jako parametry tablicę struct Product, liczbę całkowitą size oraz liczbę całkowitą threshold
    • Zwraca liczbę całkowitą reprezentującą liczbę produktów, których stan magazynowy jest niższy od progu
    • Używa pętli do zliczania produktów, których stan magazynowy jest mniejszy od wartości progu
  5. W funkcji głównej:
    • Utworzyć tablicę 3 elementów typu struct Product o nazwie inventory
    • Wczytać dane wejściowe dla każdego produktu w następującej kolejności: nazwa, cena, stan magazynowy
    • Wypełnić tablicę wczytanymi danymi
    • Wypisać informacje o każdym produkcie dokładnie w tym formacie: Product [index]: [name] - Price: [price], Stock: [stock]
    • Wywołać funkcję findMostExpensive i wypisać wynik dokładnie w tym formacie: Most expensive product: [name]
    • Wywołać funkcję calculateTotalValue i wypisać wynik z dokładnie 2 miejscami po przecinku, dokładnie w tym formacie: Total inventory value: [total_value]
    • Wczytać liczbę całkowitą reprezentującą próg niskiego stanu magazynowego
    • Wywołać funkcję findLowStock z podanym progiem i wypisać wynik dokładnie w tym formacie: Products with low stock: [count]
    • Sprawdzić, czy stan magazynowy najdroższego produktu jest większy niż 10:
      • Jeśli tak: wypisać Most expensive product is well stocked
      • Jeśli nie: wypisać Most expensive product needs restocking

To wyzwanie sprawdza Twoją umiejętność pracy z tablicami struktur, implementowania funkcji przetwarzających tablice struktur oraz wykonywania różnych obliczeń i porównań na danych strukturalnych. Przećwiczysz indeksowanie tablic struktur, projektowanie funkcji do przetwarzania danych oraz łączenie wielu operacji w celu analizowania informacji o zapasach.

Spróbuj swoich sił

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

// TODO: Zdefiniuj tutaj strukturę Product

// TODO: Zaimplementuj tutaj funkcję findMostExpensive

// TODO: Zaimplementuj tutaj funkcję calculateTotalValue

// TODO: Zaimplementuj tutaj funkcję findLowStock

int main() {
    // Utwórz tablicę 3 produktów
    struct Product inventory[3];
    
    // Wczytaj dane każdego produktu
    for (int i = 0; i < 3; i++) {
        scanf("%s", inventory[i].name);
        scanf("%f", &inventory[i].price);
        scanf("%d", &inventory[i].stock);
    }
    
    // TODO: Wyświetl informacje o każdym produkcie
    
    // TODO: Znajdź i wyświetl najdroższy produkt
    
    // TODO: Oblicz i wyświetl łączną wartość zapasów
    
    // Wczytaj próg niskiego stanu zapasów
    int threshold;
    scanf("%d", &threshold);
    
    // TODO: Znajdź i wyświetl produkty o niskim stanie zapasów
    
    // TODO: Sprawdź, czy najdroższy produkt jest dostępny w wystarczającej ilości
    
    return 0;
}

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C online