Pesquisar este blog

Livros Recomendados

sexta-feira, 5 de março de 2021

URI (BEECROWD) - 2311 - Saltos Ornamentais - Iniciante - C e C++

Confira as soluções para o problema "Saltos Ornamentais"!

:)

Plataforma: URI (BEECROWD)

Problema2311

Enunciado:

Em uma determinada competição de saltos ornamentais, cada salto recebe um grau de dificuldade e é avaliado por sete juízes. Após cada salto, os juízes, que não se comunicam uns com os outros, mostram suas notas. Um salto é cotado entre zero e dez pontos. Depois de apresentadas as notas, a mais alta e a mais baixa são descartadas. O restante é somado e multiplicado pelo grau de dificuldade do salto, que gira entre 1,2 e 3,8, definido sempre antes do início da apresentação do atleta. O julgamento então é feito da seguinte forma: supondo que um saltador tenha sua nota de partida (seu grau de dificuldade de movimento) avaliada em 2,0 e tire notas 6,0, 5,0, 5,0, 5,0, 5,0, 5,0, 4,0 em sua execução. Disso, retira-se a nota mais baixa e a mais alta, o que gera um resultado parcial de 25,0. Então, pega-se a nota de execução e multiplica-a pela nota de partida para se chegar ao resultado final, que neste exemplo é de 50,0. Seu programa deve apresentar o resultado de uma competição de acordo com estas regras.

Linguagens: C e C++


Solução:

Código em C:

#include <stdio.h>

int main() {
    int n, indice = 0, i;
    double dificuldade, nota, notas[7], maior, menor;

    scanf("%i ", &n);
    
    char nomes[n][128];
    
    while (indice < n) {
        
        scanf("%s", nomes[indice]);
        
        scanf("%lf", &dificuldade);
        
        maior = 0.0;
        menor = 10.0;
        nota = 0.0;
        
        for (i = 0; i < 7; i++) {
            
            scanf("%lf ", &notas[i]);
            nota += notas[i];
        
            if (notas[i] > maior)
                maior = notas[i];
            
            if (notas[i] < menor)
                menor = notas[i];
            
        }
        
        printf("%s %.2lf\n", nomes[indice++], dificuldade * (nota - maior - menor));
    }
    
    return 0;
}

Código em C++:

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
    int n, indice = 0;
    double dificuldade, nota, notas[7], maior, menor;

    cin >> n;
    cin.ignore();
    
    string nomes[n];
    
    while (indice < n) {
        
        getline(cin, nomes[indice]);
        
        cin >> dificuldade;
        
        maior = 0.0;
        menor = 10.0;
        nota = 0.0;
        
        for (int i = 0; i < 7; i++) {
            
            cin >> notas[i];
            nota += notas[i];
        
            if (notas[i] > maior)
                maior = notas[i];
            
            if (notas[i] < menor)
                menor = notas[i];
            
        }
        
        cout << nomes[indice++] << " " << fixed << setprecision(2) << dificuldade * (nota - maior - menor) << endl;
        
        cin.ignore();
        
    }
    
    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