Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RGRQRS

[Resolvido] Erro ao sair com numero negativo

Recommended Posts

Boa noite!!!

 

Estou com 2 programinhas para terminar:

1. exibir soma e media;

2. exibir maior e menor vlr digitado.

 

O 1 exibi a soma (Menos o valor digitado para sair) automaticamente a media sai com vlr menos o digitado.

O 2 exibi corretamente o maior o menor e sempre zero.

 

Veja a seguir:

 

1.

while (n1>=0)

 

{

printf("\nDigite o numero: ");

scanf("%i",&n1);

 

if (n1>=0) Obs: tentei com for igual a condição abaixo.

-------------------------------------------------------------

2.

for (;;)

{

printf("\nDigite o numero: ");

scanf("%i",&num);

 

if (num<0)break;

if (num > maior)

maior=num;

if (num<menor)

menor = num;

 

Por enquanto o obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. ?

 

2.

atribua a variável menor um valor alto, ali você ta verificando por exemplo

 

num= 3

menor = 0

 

(num<menor) FALSE

 

nunca vai dar certo... dai você atribuindo um valor alto

 

num= 3

menor = 999

(num<menor) TRUE

 

tendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Scorpio, walew a dica fechei mais um, falta só o ultimo do trabalho, acredito que logo mais será resolvido tb...um gde abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para achar o menor e o maior valor lido voce pode iniciar as variáveis com o primeiro valor lido.

 

leia (num)
menor = valor
maior = valor

// abaixo vem seu codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!!!

 

Com relacao ao programa maior e menor o mesmo foi resolvido, resta agora saber onde estou errando neste programa.

1. exibir soma e media;

A soma eh exibida (subtraindo o valor negativo digitado para sair) automaticamente a media e calculada erroneamente com vlr negativo digitado.

 

Veja a seguir:

1.

while (n1>=0)

{

printf("\nDigite o numero: ");

scanf("%i",&n1);

 

if (n1>=0)

Obs: tentei com for igual a condição abaixo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

naum entendi você naum ta sabendo fazer oq?

como vai trabalhar com média utilize variaveis do tipo float!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para resolver isso voce pode fazer o teste do laço logo após a leitura do número.

 

leia(n1)
while (n1>=0)
{
// efetue os calculos necessarios e soh depois leia outro numero

printf("\nDigite o numero: ");
scanf("%i",&n1);
}

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia

 

Despois desta orientação ficou resolvido.

Muito obrigado

 

printf("\n\nDigite numeros positivos, para sair digite um qualquer negativo.");
	printf("\n\nNumero = ");
	scanf("%i",&n1);
	printf("\n");
	
	while (n1>=0)
		  {
		   contx=contx+1;		 
		   soma=soma+n1; 
		   media=soma/contx;
		   printf("Numero = ");
		   scanf("%i",&n1);
		   printf("\n");
		  }
		   printf("\n..X SOMATORIA......%.f",contx);
		   printf("\n..SOMA.............%d", soma);
		   printf("\n..MEDIA............%.2f",media);
		   printf("\n\n");
		   system("pause");

Um gde abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.