Menu
Coddy logo textTech

Повторение: массив структур

Часть раздела Logic & Flow путешествия по C на Coddy — урок 62 из 63.

challenge icon

Задание

Легко

Создайте программу на языке C, которая управляет системой инвентаризации товаров с использованием массива структур. Ваша программа должна:

  1. Определить struct с именем Product со следующими полями:
    • Символьный массив name размером 30
    • Число с плавающей точкой price
    • Целое число stock
  2. Написать функцию с именем findMostExpensive, которая:
    • Принимает массив struct Product и целое число size в качестве параметров
    • Возвращает целое число, представляющее индекс товара с самой высокой ценой
    • Использует цикл для итерации по всем товарам и сравнения их цен
    • Возвращает индекс первого найденного товара с максимальной ценой
  3. Написать функцию с именем calculateTotalValue, которая:
    • Принимает массив struct Product и целое число size в качестве параметров
    • Возвращает число с плавающей точкой, представляющее общую стоимость инвентаря
    • Рассчитывает общую стоимость путем суммирования (цена × количество) для каждого товара
  4. Написать функцию с именем findLowStock, которая:
    • Принимает массив struct Product, целое число size и целое число threshold в качестве параметров
    • Возвращает целое число, представляющее количество товаров, запас которых ниже порогового значения
    • Использует цикл для подсчета товаров, у которых stock меньше значения threshold
  5. В функции main:
    • Создать массив из 3 struct Product с именем inventory
    • Считать входные данные для каждого товара в следующем порядке: name, price, stock
    • Заполнить массив входными данными
    • Вывести информацию о каждом товаре в точном формате: Product [index]: [name] - Price: [price], Stock: [stock]
    • Вызвать функцию findMostExpensive и вывести результат в точном формате: Most expensive product: [name]
    • Вызвать функцию calculateTotalValue и вывести результат ровно с 2 знаками после запятой в точном формате: Total inventory value: [total_value]
    • Считать целое число, представляющее порог низкого запаса
    • Вызвать функцию findLowStock с этим порогом и вывести результат в точном формате: Products with low stock: [count]
    • Проверить, превышает ли запас самого дорогого товара значение 10:
      • Если да: вывести Most expensive product is well stocked
      • Если нет: вывести Most expensive product needs restocking

Эта задача проверяет ваше умение работать с массивами структур, реализовывать функции, обрабатывающие массивы структур, и выполнять различные вычисления и сравнения структурированных данных. Вы попрактикуетесь в индексации массивов со структурами, проектировании функций для обработки данных и объединении нескольких операций для анализа информации об инвентаре.

Попробуйте сами

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

// TODO: Определите структуру Product здесь

// TODO: Реализуйте функцию findMostExpensive здесь

// TODO: Реализуйте функцию calculateTotalValue здесь

// TODO: Реализуйте функцию findLowStock здесь

int main() {
    // Создайте массив из 3 продуктов
    struct Product inventory[3];
    
    // Считайте входные данные для каждого продукта
    for (int i = 0; i < 3; i++) {
        scanf("%s", inventory[i].name);
        scanf("%f", &inventory[i].price);
        scanf("%d", &inventory[i].stock);
    }
    
    // TODO: Выведите информацию о каждом продукте
    
    // TODO: Найдите и выведите самый дорогой продукт
    
    // TODO: Рассчитайте и выведите общую стоимость запасов
    
    // Считайте порог низкого запаса
    int threshold;
    scanf("%d", &threshold);
    
    // TODO: Найдите и выведите продукты с низким запасом
    
    // TODO: Проверьте, достаточно ли запасов самого дорогого продукта
    
    return 0;
}

Все уроки раздела Logic & Flow