Ir ao conteúdo
  • Cadastre-se

C Nao consigo identificar o erro


Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

@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++;

 

Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

@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);

Link para o comentário
Compartilhar em outros sites

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

Redes-Wi-Fi-capa-3d-newsletter.png

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!