TOPIC

Erro em 10%

JVMDO asked 3 years ago

Pessoal, recebi 10% WA. Alguém consegue encotrar o motivo?

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int e = 0;
    double num;
    cin >> num;

    if( num > 1 ){
        while( num/10 > 1 ){
            num /= 10;
            e++;
        }
        cout << fixed << setprecision(4);
        cout << "+" << num;
        cout << ( e/10 > 0 ? "E+" : "E+0" ) << e << endl;
    }
    else if( num > 0 && num < 1 ){
        while( num*10 < 10 ){
            num *= 10;
            e++;
        }
        cout << fixed << setprecision(4);
        cout << "+" << num;
        cout << ( e/10 > 0 ? "E-" : "E-0" ) << e << endl;
    }
    else if( num > -1 && num < 0 ){
        while( num*10 > -10 ){
            num *= 10;
            e++;
        }
        cout << fixed << setprecision(4);
        cout << num;
        cout << ( e/10 > 0 ? "E-" : "E-0" ) << e << endl;
    }
    else{
        while( num*10 < -100 ){
            num /= 10;
            e++;
        }
        cout << fixed << setprecision(4);
        cout << num;
        cout << ( e/10 > 0 ? "E+" : "E+0" ) << e << endl;
    }

    return 0;
}

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

  • Luiz Barcelos replied 3 years ago

    Testei seu código para entrada 0 e 1, e ele não imprimia o sinal de + antes do número da resposta. Verifique esses aspectos de formatação, principalmente com relação ao zero. Teste -0.0000 e +0.000 no uDebug para saber a resposta esperada.

    Para o teste com a entrada 1

    Resposta esperada: +1.0000E+00 Resposta recebida: 1.0000E+00