Ir ao conteúdo

Posts recomendados

Postado
#include <iostream>
#include <cmath>
#include <stdlib.h>

using namespace std; 

int main() { 

char numeros[100],ordem[100];
int i, tamanho, num1, num2, menor, maior; 

i=0;
tamanho=0;
num1=0;
num2=0;
menor=11;
maior=0;



cout << "Digite alguns numeros de maneira completamente aleatoria: ";
cin >> numeros; 
system("cls");

    //While que analisa numero por numero
	while(numeros[i]  !='\0') { 	
	        
	        //Se o resto for igual a zero (isso significa q ele é par) ele add 1 na variavel num1, caso contrario ele adiciona uma na variavel num2 que seria a variavel para os impares.
	    	if(numeros[i]%2 == 0 ) { 
	    	num1++;
			} else { 
			num2++;
			}
	
	        
	        //Se esse elemento da array for menor que o da variavel num3 ele substitui o numero. Essa variavel tem valor 11 de natureza para qualquer elemento ja substituir ela.
	    	if(numeros[i]>=maior) {
	    	maior=numeros[i];
			}
					
		    //Se esse elemeneto da array for maior que o da variavel num4 ele substitui esse numero, Essa variavel tem valor 0 de natureza para qualquer elemento ja substituir ela.
			if(numeros[i]<=menor) { 
			menor=numeros[i];
			}
	
	//adiciona mais 1 para analisar o proximo elemento da array.		
	i++; 
	tamanho++;
			
	}	
	


//Mostra os valores pedidos no final. 	
cout << "Quantidade de numeros: " << tamanho << endl;
cout << "Quantidade de numeros pares: " << num1 << endl; 
cout << "Quantidade de numeros impares: " << num2 << endl;
cout << "O menor numero e o: " << menor << endl;
cout << "O maior numero e o: " << maior;

return 0;
}

O código tem mais coisa, no caso ele mostra quantos números tem, quantos são pares e quantos são impares. Eu queria mostrar qual o maior e o menor dos valores digitados, porém n esta dando certo, aparece uns valores muito estranhos tipo 56 como maior valor, o que está de errado ? 

 

  • Curtir 1
  • Amei 1
Postado

@Randradee99    você está pegando os números em uma string , então eles são caracteres dígitos que na tabela ASCII tem um valor código , e assim o dígito zero tem código 48  ,   e o 8 tem esse código que você disse 56 ,  então esses tais números serão de zero até nove , e você pode subtrair 48 do valor do número no printf finaL , assim :


//Mostra os valores pedidos no final. 	
cout << "Quantidade de numeros ---------: " << tamanho    << endl;
cout << "Quantidade de numeros pares ---: " << num1       << endl; 
cout << "Quantidade de numeros impares -: " << num2       << endl;
cout << "O menor numero eh o -----------: " << menor - 48 << endl;
cout << "O maior numero eh o -----------: " << maior - 48 << endl;

 

  • Obrigado 1
  • 2 anos depois...
Postado

Boa Dia!

 

 

Em 21/08/2021 às 01:33, Randradee99 disse:

o que está de errado ? 

 

Como diz post #2 e eu reforço: suas variáveis `maior` e `menor` são do tipo int;

e a `numeros` de tipo char[], que, com a extração, faz de seus valores aleatórios uma corda aleatória.

 

Resolve:

Declare tipo int em `numeros` e expresse a leitura num laço.

  • Curtir 1

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!