Menu
Coddy logo textTech

Wiederholung: Array von Structs

Teil des Abschnitts Logic & Flow der C-Journey von Coddy — Lektion 62 von 63.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein C-Programm, das ein Produktinventarsystem unter Verwendung eines Arrays von Structs verwaltet. Ihr Programm sollte:

  1. Definieren Sie ein struct namens Product mit den folgenden Elementen:
    • Ein Zeichen-Array name der Größe 30
    • Ein Float price
    • Ein Integer stock
  2. Schreiben Sie eine Funktion namens findMostExpensive, die:
    • Ein Array von struct Product und einen Integer size als Parameter entgegennimmt
    • Einen Integer zurückgibt, der den Index des Produkts mit dem höchsten Preis darstellt
    • Eine Schleife verwendet, um alle Produkte zu durchlaufen und deren Preise zu vergleichen
    • Den Index des ersten gefundenen Produkts mit dem maximalen Preis zurückgibt
  3. Schreiben Sie eine Funktion namens calculateTotalValue, die:
    • Ein Array von struct Product und einen Integer size als Parameter entgegennimmt
    • Einen Float zurückgibt, der den Gesamtwert des Inventars darstellt
    • Den Gesamtwert berechnet, indem die Summe von (price × stock) für jedes Produkt gebildet wird
  4. Schreiben Sie eine Funktion namens findLowStock, die:
    • Ein Array von struct Product, einen Integer size und einen Integer threshold als Parameter entgegennimmt
    • Einen Integer zurückgibt, der die Anzahl der Produkte darstellt, deren Bestand unter dem Schwellenwert liegt
    • Eine Schleife verwendet, um Produkte zu zählen, bei denen der Bestand geringer als der Schwellenwert ist
  5. In der main-Funktion:
    • Erstellen Sie ein Array aus 3 struct Product namens inventory
    • Lesen Sie die Eingabe für jedes Produkt in dieser Reihenfolge ein: name, price, stock
    • Füllen Sie das Array mit den Eingabedaten
    • Geben Sie die Informationen jedes Produkts in genau diesem Format aus: Product [index]: [name] - Price: [price], Stock: [stock]
    • Rufen Sie die Funktion findMostExpensive auf und geben Sie das Ergebnis in genau diesem Format aus: Most expensive product: [name]
    • Rufen Sie die Funktion calculateTotalValue auf und geben Sie das Ergebnis mit genau 2 Dezimalstellen in genau diesem Format aus: Total inventory value: [total_value]
    • Lesen Sie einen Integer ein, der den Schwellenwert für niedrigen Bestand darstellt
    • Rufen Sie die Funktion findLowStock mit dem Schwellenwert auf und geben Sie das Ergebnis in genau diesem Format aus: Products with low stock: [count]
    • Prüfen Sie, ob das teuerste Produkt einen Bestand von mehr als 10 hat:
      • Wenn ja: geben Sie Most expensive product is well stocked aus
      • Wenn nein: geben Sie Most expensive product needs restocking aus

Diese Herausforderung testet Ihre Fähigkeit, mit Arrays von Structs zu arbeiten, Funktionen zu implementieren, die Struct-Arrays verarbeiten, und verschiedene Berechnungen und Vergleiche an strukturierten Daten durchzuführen. Sie üben die Array-Indizierung mit Structs, das Funktionsdesign für die Datenverarbeitung und die Kombination mehrerer Operationen zur Analyse von Inventarinformationen.

Probier es selbst

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

// TODO: Definieren Sie hier die Struktur Product

// TODO: Implementieren Sie hier die Funktion findMostExpensive

// TODO: Implementieren Sie hier die Funktion calculateTotalValue

// TODO: Implementieren Sie hier die Funktion findLowStock

int main() {
    // Array mit 3 Produkten erstellen
    struct Product inventory[3];
    
    // Eingabe für jedes Produkt einlesen
    for (int i = 0; i < 3; i++) {
        scanf("%s", inventory[i].name);
        scanf("%f", &inventory[i].price);
        scanf("%d", &inventory[i].stock);
    }
    
    // TODO: Informationen jedes Produkts ausgeben
    
    // TODO: Das teuerste Produkt finden und ausgeben
    
    // TODO: Gesamtwert des Inventars berechnen und ausgeben
    
    // Schwellenwert für niedrigen Lagerbestand einlesen
    int threshold;
    scanf("%d", &threshold);
    
    // TODO: Produkte mit geringem Lagerbestand finden und ausgeben
    
    // TODO: Überprüfen, ob das teuerste Produkt ausreichend vorrätig ist
    
    return 0;
}

Alle Lektionen in Logic & Flow