GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

O programa não está funcionando

Tags: #<Tag:0x00007f289741d8b0>

Pessoal, por favor me ajudem. Criei esse programa para relatar qual o número é menor e qual o maior, mas até agora só o maior está funcionando, enquanto o menor só me mostra o número zero. Tem como alguém analisar e explicar o meu erro?

Var
cont: inteiro
pre, maior, menor: real
Inicio
cont <- 0
Enquanto (cont <= 8) faca
Escreva ("Digite o preço: ")
Leia (pre)
Se (pre > maior) entao
maior <- pre
Senao
Se (pre < menor)
menor <- pre
FimSe
cont <- cont + 1
FimEnquanto
Escreval ("O maior número é o ", maior)
Escreval ("O menor número é o ", menor)

menor está sendo inicializado como 0.0

Isso aqui só vai ser verdadeiro se “pre” for um número negativo.

Desculpa, mas eu não entendi.

Testa isso aqui:

Var
	cont: inteiro
	pre, maior, menor: real
Inicio
	cont <- 0
	Enquanto (cont <= 8) faca
		Escreva ("Digite o preço: ")
		Leia (pre)
		Se (cont = 0.0)
			menor <- pre
		FimSe
		Se (pre > maior) entao
			maior <- pre
		Senao
			Se (pre < menor)
				menor <- pre
		FimSe
		cont <- cont + 1
	FimEnquanto
	Escreval ("O maior número é o ", maior)
	Escreval ("O menor número é o ", menor)

Obs.: não sei se a sintaxe tá correta, nunca usei essa linguagem antes.

Nossa moço, muito obrigada. Estava desde as 13h tentando e nada, o senhor foi uma luz hahaha

1 Curtida

Só explicando a correção:
Como eu tinha falado antes, a variável menor estava sendo inicializada como 0.0. (É o valor padrão)
No “se” você checava se “pre” é menor que a variável “menor”, porém os únicos números menores que 0 são os negativos (e você com certeza não estava digitando negativos).
O que eu fiz?
Na primeira vez (apenas) que o usuário digita, eu atribui esse valor à variável menor, para usar algo diferente do valor padrão (0.0) e para comparar apenas com números que o usuário digitou.

1 Curtida
//