Ir ao conteúdo

Posts recomendados

Postado

Faça um programa para ler no máximo 20 números inteiros do usuário e mostrar quantos números são negativos.
Considere que ao digitar o número -99, o usuário deseja encerrar a sequência de entrada.

USANDO DO WHILE!!!

 

meu codigo:

#include <stdio.h>

int main(){
	
	int num;
	
	printf("Digite alguns numeros: ");
	
	do{
		scanf("%d", &num);
		
		if(num < 0)
		{
			num = num - (-1);
		}
		
	}while (num != -99);
	
	printf("\n\nOs numeros negativos sao: %d", num);
	
	return 0;
}

O -99 nao ta fechando a operação e nem ta contabilizando os numeros negativos...

  • Curtir 1
Postado

@Trem_P3   precisa de uma variável para armazenar a qtd de negativos , assim se num < 0 contador++;

e logo depois do scanf num , coloque esse break assim

int contador = 0; // no início 

// outros comando

scanf("%d", &num);
if(num == -99)break; //  para sair do loop sem contabilizar esse -99
if(num < 0)
    contador++;

 

Postado

@devair1010 Ficou assim, o que tem de errado ainda? Tá aparecendo numeros negativos sao: 99

#include <stdio.h>

int main()
{
	
	int num, contador;
	contador = 0;
	
	printf("Digite alguns numeros: ");
	
	do{
		scanf("%d", &num);
		
		if(num < 0)
		{
			contador++;
		}
		if(num == -99)break;
		
	}while (num != -99);
	
	printf("\n\nOs numeros negativos sao: %d", num);
	
	return 0;
}

 

  • Curtir 1
Postado
2 horas atrás, Trem_P3 disse:

O -99 nao ta fechando a operação e nem ta contabilizando os numeros negativos...

 

Sem surpresas aqui. Você conta os negativos em contador e imprime num que certamente será -99 ou ainda estaria no loop.

 

Já pensou em usar printf() e mostrar o que está lendo e fazendo? Para você mesmo, até estar certo de que a lógica faz sentido?

 

 

  • Curtir 1
Postado

@Trem_P3     isso mesmo que o   @arfneto  disse ,  voce foi incrementando a variavel contador a cada numero negativo ,  entao no final , depois de sair do loop while , escrevx o valor da variavel contador , que sera o total de numeros negativos   ,  e outra coisa eh que voce mudou o comsndo    break de lugar ,  e ele precisa nesse caso ficar mesmo mesmo logo abaixo do scanf , senao ele vai contar tambem o numero -99 , e a soma do total de numeros negativos estarah errada   .,.,. .     .    entao no final , coloque assim  :

printf("o total de negativos eh --:   %d\n",contador);

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!