O problema intitulado "Notação Científica" pode ser resolvido de algumas formas! Eu optei por usar estruturas de formatação disponíveis nas linguagens. Confira na sequência!
Plataforma: URI (BEECROWD)
Problema: 1958
Enunciado:
Números em ponto flutuante podem ser bastante extensos para mostrar. Nesses casos, é conveniente usar a notação científica.
Você deve escrever um programa que, dado um número em ponto flutuante, mostre este número na notação científica: sempre mostre o sinal da mantissa; sempre mostre 4 casas decimais na mantissa; use o caractere 'E' para separar a mantissa do expoente; sempre mostre o sinal do expoente; e mostre o expoente com pelo menos 2 dígitos.
Linguagens: C e C++
Solução:
Código em C:
Para utilizar notação científica com "E" maiúsculo e no formato desejado para a saída, basta formatar o printf com %.4E. Há um teste antes para saber se o primeiro caractere é "-"; isso é feito para acrescentar o "+" caso o valor não seja negativo. A função strtold faz a conversão do texto para double, necessário para utilizar a formatação %.4E.
#include <stdio.h> #include <stdlib.h> int main () { char entrada[112]; char *parada; double x; fgets(entrada, sizeof(entrada), stdin); if (entrada[0] != '-') printf("+"); x = strtold(entrada, ¶da); printf("%.4E\n", x); return 0; }
#include <iostream> #include <string> using namespace std; int main () { string entrada; long double x; getline(cin, entrada); if (entrada[0] != '-') cout << "+"; x = stold(entrada); cout.precision(4); cout << scientific; cout << uppercase; cout << x << endl; return 0; }
Nenhum comentário:
Postar um comentário