TOPIC

O que há de errado?

Will asked 2 months ago

include include

using namespace std;

int main() {

double A, B, MEDIA; A=3.5; B=7.5;

MEDIA=A+B/2;

cout << "MEDIA = " << MEDIA << fixed << setprecision(1) << "\n";

return 0;

}

Está dando 35% de erro.

Remember not post solutions. Your post may be reviewed by our moderators.

  • Wellerson Salvatore replied 2 months ago

    não é isso que a questão pede... ela fala assim "sabendo que a nota A tem peso 3.5 e a nota B tem peso 7.5 (A soma dos pesos portanto é 11)", logo dividir por 2 é errado, primeiro você deve multiplicar A por 3.5 e B por 7.5 somar as duas notas e dividir por 11.

  • Will replied 2 months ago

    Eu alterei o que você disse, entretanto o erro diminuiu para 25%.

    #include <iostream>
    #include <iomanip>
    
    using namespace std;
    
    int main() {
    
     double A, B, MEDIA;
     cin >> A;
     cin >> B;
    
     MEDIA=(A+B)/2;
    
     cout << "MEDIA = " << MEDIA << fixed << setprecision(5) << "\n";
    
        return 0;
    }
  • Daniel replied 2 months ago

    Há alguns erros em seu código:

    1) Eu creio que você se confundiu no momento de definir a inclusão da biblioteca de entrada e saída.

    include include

    Retornará erro de compilação. Mude para:

    #include <iostream>

    ou

    #include <bits/stdc++.h>

    2) No momento em que você calcula a média, há um problema semântico em relação à ordem das operações. Como você não explicitou que a soma deve ser realizada primeiro com a utilização de parênteses, a divisão B/2 será realizada primeiro e o resultado disso será somado com A. Corrija para:

    MEDIA = (A+B) / 2;

    3) O problema especifica que devem existir 5 dígitos de precisão. Quando você define

    cout << fixed << setprecision(1)

    Determina que seja exibido apenas um dígito de precisão. Apenas mude o setprecision para a quantidade de casas decimais desejada:

    cout << fixed << setprecision(5);