Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 1281. Mostrar todas as postagens
Mostrando postagens com marcador 1281. Mostrar todas as postagens

terça-feira, 2 de fevereiro de 2021

URI (BEECROWD) - 1281 - Ida à Feira - Estruturas - C e C++

Galera, resolvi hoje um exercício de estruturas! Essa categoria ainda não foi muito explorada por mim, mas tem vários exercícios interessantes! O exercício "Ida à Feira" é um deles! Bora conferir as soluções em C e C++!

Plataforma: URI (BEECROWD)

Problema1281

Enunciado
:

Dona Parcinova costuma ir regularmente à feira para comprar frutas e legumes. Ela pediu então à sua filha, Mangojata, que a ajudasse com as contas e que fizesse um programa que calculasse o valor que precisa levar para poder comprar tudo que está em sua lista de compras, considerando a quantidade de cada tipo de fruta ou legume e os preços destes itens.


Linguagens: C e C++


Solução:

Utilizei array em C e vector em C++, aplicando a ambos a mesma lógica.

Basta verificar se a comida informada está na estrutura de comidas e assim pegar a quantidade informada e multiplicar pelo valor daquela comida. Isso deve ser armazenado em um acumulador que conterá a resposta. Essa resposta apenas precisa estar formatada com duas casas decimais, já que será exibida na forma R$ aa.bb.

Código em C:

#include <stdio.h>
#include <string.h>
int main() {
    int n, m, qtd, p, i;
    double total, valores[900];
    char str[51], comida[900][51];
    scanf("%d", &n);
    while (n--) {
        total = 0;
        scanf("%d", &m);
        for (i = 0; i < m; i++) {
            scanf("%s %lf", comida[i], &valores[i]);
        }
        scanf("%d", &p);
        while (p--) {
            scanf("%s %d", str, &qtd);
            for (i = 0; i < m; i++) {
                if (!strcmp(str, comida[i])) {
                    total += qtd * valores[i];
                }
            }
        }
        printf("R$ %.2lf\n", total);
        memset(comida, 0, sizeof(comida));
        memset(valores, 0, sizeof(valores));
    }
    return 0;
}

Código em C++:

#include <iomanip>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
    int n, m, qtd, p;
    double v, total;
    string str;
    vector<double> valores;
    vector<string> comida;
    cin >> n;
    while (n--) {
        total = 0;
        cin >> m;
        for (int i = 0; i < m; i++) {
            cin >> str >> v;
            comida.push_back(str);
            valores.push_back(v);
        }
        cin >> p;
        while (p--) {
            cin >> str >> qtd;
            for (int i = 0; i < m; i++) {
                if (!str.compare(comida.at(i))) {
                    total += qtd * valores.at(i);
                }
            }
        }
        cout << "R$ " << fixed << setprecision(2) << total << endl;
        comida.clear();
        valores.clear();
    }
    return 0;
}

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas