Pesquisar este blog

Livros Recomendados

sábado, 13 de março de 2021

URI (BEECROWD) - 2486 - C Mais ou Menos? - Iniciante - C++

C Mais ou Menos? Vamos resolver esse exercício em C e C++!

Plataforma: URI (BEECROWD)

Problema2486

Enunciado:

Ultimamente, diversas pessoas estão indo à Dra. Cláudia Café com Leite para saber se estão consumindo a quantidade recomendada diária de vitamina C. Isso tem a deixado exausta, e por isso ela lhe pediu para escrever um programa que, dado o consumo diário de alimentos ricos em vitamina C por uma pessoa, indique o quanto essa pessoa deve consumir a mais ou a menos para atingir o recomendado.

Para tal, você poderá utilizar a tabela a seguir:

Alimentos ricos em Vitamina CQuantidade de Vitamina C
suco de laranja120 mg
morango fresco85 mg
mamao85 mg
goiaba vermelha70 mg
manga56 mg
laranja50 mg
brocolis34 mg

Considere que o consumo diário recomendado de vitamina C está entre 110 mg e 130 mg, inclusive.

Linguagens: C e C++


Solução:

Código em C:

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

int main() {
    
    int t, vitaminaC, quantidade, indice, posicao;
    int quantidadePorAlimento[7] = {120, 85, 85, 70, 56, 50, 34};
    
    char alimentoConsumido[16];
    char alimentos[7][16] = {"suco de laranja", "morango fresco", "mamao", "goiaba vermelha", "manga", "laranja", "brocolis" };
    
    while (1) {
        
        scanf("%i", &t);
        
        if (t == 0) break;
        
        vitaminaC = 0;
        
        while (t--) {
            
            scanf(" %i ", &quantidade);
            fgets(alimentoConsumido, 16, stdin);
    
            for (indice = 0; indice < 7; indice++) {
                
                if (strstr(alimentoConsumido, alimentos[indice]) != NULL) {
                    posicao = indice;
                    break;
                }
            }
            
            vitaminaC += (quantidade * quantidadePorAlimento[posicao]);
        }
        
        if (vitaminaC < 110)
            printf("Mais %i mg\n", 110 - vitaminaC);
            
        else if (vitaminaC > 130)
            printf("Menos %i mg\n", vitaminaC - 130);
            
        else
            printf("%i mg\n", vitaminaC);
        
    }
    
    return 0;
}

Código em C++:

#include <iostream>
#include <string.h>

using namespace std;

int main() {
    
    int t, vitaminaC, quantidade, indice, posicao;
    int quantidadePorAlimento[7] = {120, 85, 85, 70, 56, 50, 34};
    
    string alimentoConsumido;
    string alimentos[7] = {"suco de laranja", "morango fresco", "mamao", "goiaba vermelha", "manga", "laranja", "brocolis" };
    
    while (1) {
        
        cin >> t;
        
        if (t == 0) break;
        
        vitaminaC = 0;
        
        while (t--) {
            
            cin >> quantidade;
            cin.ignore();
            getline(cin, alimentoConsumido);
    
            for (indice = 0; indice < 7; indice++) {
                
                if ((alimentoConsumido.compare(alimentos[indice])) == 0) {
                    posicao = indice;
                    break;
                }
            }
            
            vitaminaC += (quantidade * quantidadePorAlimento[posicao]);
        }
        
        if (vitaminaC < 110)
            cout << "Mais " << 110 - vitaminaC << " mg" << endl;
            
        else if (vitaminaC > 130)
            cout << "Menos " << vitaminaC - 130 << " mg" << endl;
            
        else
            cout << vitaminaC << " mg" << endl;
        
    }
    
    return 0;
}

Nenhum comentário:

Postar um comentário

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