Ir ao conteúdo
  • Cadastre-se

O contador do while não funciona corretamente.


Danilo Lopes

Posts recomendados

O algoritmo roda corretamente mais os contadores não funcionam, o que está acontecendo? 

4. Um determinado material radioativo perde metade de sua massa a
cada 50 segundos. Dada a massa inicial em gramas, fazer um
algoritmo que determine o tempo necessário para que essa massa se
torne menor do que 0,5 gramas. Escreva a massa inicial, a massa final
e o tempo calculado em horas, minuto e segundos.
 
# include <iostream>
using namespace std;
 
int main () {
float massa, tempoh, tempom, tempos, i, comparador, somador;
 
cout << "Digite a massa do material: ";
cin >> massa;
cout << endl;
 
i = 0;
tempos = 0;
comparador = 0;
somador = massa;
 
while (i < 0.5){
comparador = somador / 2;
tempos = tempos + 50;
somador = comparador;
i = somador;
}
 
 
tempom = ((tempos * 1) / 60);
tempoh = ((tempos * 1) / 3600);
 
cout << "A massa inicial e: " << massa << " gramas";
cout << endl;
cout << "A massa final e: " << comparador;
cout << endl;
cout << "O tempo em segundos e: " << tempos;
cout << endl;
cout << "O tempo em minutos e: " << tempom;
cout << endl;
cout << "O tempo em horas e: " << tempoh;
cout << endl;
 
 
return (0);
}

 

Link para o comentário
Compartilhar em outros sites

O problema aí é que quando i recebe o valor do somador, que será metade da massa que provavelmente será maior que 0.5, já será a condição de parada pois o loop acontece enquanto i < 0.5.

Você poderia resolver assim,

    comparador = massa;    while(comparador > 0.5){        comparador /= 2;        tempo += 50;    }
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...