Menu
Coddy logo textTech

Revisão: Array de Structs

Parte da seção Lógica e Fluxo do Journey de C da Coddy. Lição 62 de 63.

challenge icon

Desafio

Fácil

Crie um programa em C que gerencie um sistema de inventário de produtos usando um array de structs. Seu programa deve:

  1. Definir uma struct chamada Product com os seguintes membros:
    • Um array de caracteres name com tamanho 30
    • Um float price
    • Um inteiro stock
  2. Escrever uma função chamada findMostExpensive que:
    • Receba um array de struct Product e um inteiro size como parâmetros
    • Retorne um inteiro representando o índice do produto com o maior preço
    • Use um loop para iterar por todos os produtos e comparar seus preços
    • Retorne o índice do primeiro produto encontrado com o preço máximo
  3. Escrever uma função chamada calculateTotalValue que:
    • Receba um array de struct Product e um inteiro size como parâmetros
    • Retorne um float representando o valor total do inventário
    • Calcule o valor total somando (preço × estoque) de cada produto
  4. Escrever uma função chamada findLowStock que:
    • Receba um array de struct Product, um inteiro size e um inteiro threshold como parâmetros
    • Retorne um inteiro representando a quantidade de produtos cujo estoque está abaixo do limite
    • Use um loop para contar os produtos cujo estoque é menor que o valor do limite
  5. Na função principal:
    • Crie um array de 3 struct Product chamado inventory
    • Leia a entrada de cada produto nesta ordem: nome, preço, estoque
    • Preencha o array com os dados de entrada
    • Imprima as informações de cada produto neste formato exato: Product [index]: [name] - Price: [price], Stock: [stock]
    • Chame a função findMostExpensive e imprima o resultado neste formato exato: Most expensive product: [name]
    • Chame a função calculateTotalValue e imprima o resultado com exatamente 2 casas decimais neste formato exato: Total inventory value: [total_value]
    • Leia um inteiro representando o limite de estoque baixo
    • Chame a função findLowStock com o limite e imprima o resultado neste formato exato: Products with low stock: [count]
    • Verifique se o produto mais caro tem estoque maior que 10:
      • Se sim: imprima Most expensive product is well stocked
      • Se não: imprima Most expensive product needs restocking

Este desafio testa sua capacidade de trabalhar com arrays de structs, implementar funções que processem arrays de structs e realizar diversos cálculos e comparações em dados estruturados. Você praticará a indexação de arrays com structs, o projeto de funções para processamento de dados e a combinação de várias operações para analisar informações do inventário.

Experimente você mesmo

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

// TODO: Defina a struct Product aqui

// TODO: Implemente a função findMostExpensive aqui

// TODO: Implemente a função calculateTotalValue aqui

// TODO: Implemente a função findLowStock aqui

int main() {
    // Cria um array de 3 produtos
    struct Product inventory[3];
    
    // Lê a entrada para cada produto
    for (int i = 0; i < 3; i++) {
        scanf("%s", inventory[i].name);
        scanf("%f", &inventory[i].price);
        scanf("%d", &inventory[i].stock);
    }
    
    // TODO: Imprime as informações de cada produto
    
    // TODO: Encontra e imprime o produto mais caro
    
    // TODO: Calcula e imprime o valor total do inventário
    
    // Lê o limite de estoque baixo
    int threshold;
    scanf("%d", &threshold);
    
    // TODO: Encontra e imprime produtos com estoque baixo
    
    // TODO: Verifica se o produto mais caro está com bom estoque
    
    return 0;
}

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Compilador de C online