Ir ao conteúdo
  • Cadastre-se

C++ C++ | Números aleatórios, ordem por número crescente e decrescente.


Rorgrun
Ir à solução Resolvido por devair1010,

Posts recomendados

Boa noite noite pessoal.

 

Tenho que fazer um algoritmo no qual o mesmo deve estar gerando trinta números aleatórios e ordenar os mesmos por número crescente e decrescente.

Sabendo disso, o meu algoritmo não está imprimindo os números em ordem crescente e decrescente. Sabem porque isso está acontecendo?

Segue abaixo o código em C++.

 

--

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <ctime>



using namespace std;



int main (){


    srand(time(0));    
    int i,y[30],aux[30], TAM=30,v[30],j;
    
    cout << "Os numeros aleatorios sao: "<<endl;
    
    for(int i=1;i< TAM;i++){
        v= 1+(rand()%100);
        cout<<v<<endl;
    }
     
    for (i = 0; i < TAM; i++){
        for(y = v + 1; y < TAM; j++){
            if (v > y){
                aux = i;
                v = y;
                y = aux;
            }
        }
    }
    
    cout << "Elementos ordenados (decrescente): \n";
    for( i = 0; i < TAM; i++){
        cout <<v<<endl;
    }
    
    for (i = 0; i < TAM; i++){
        for(y = v + 1; y < TAM; j++){
            if (v < y){
                aux = i;
                v = y;
                y = aux;
            }
        }
    }
    
    cout << "Elementos ordenados (crescente): \n";
    for( i = 0; i < TAM; i++){
        cout <<v<<endl;
    }
    
    return 0;    
}

--

Grato desde já.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução

@Rorgrun     você esqueceu de colocar o índice, que é a posição,  do vetor na hora de ordenar .

/* coloca em ordem crescente */
for (i = 0; i < TAM; i++){
        for(y = i + 1; y < TAM; y++){
            if (v[i] > v[y]){  /* precisa colocar a posição do vetor */
                aux = v[i];
                v[i] = v[y];
                v[y] = aux;
            }
        }
    }

para colocar em ordem decrescente é só mudar o sinal > para < nessa linha :

 if (v[i] < v[y]){  /* precisa colocar a posição do vetor */

 

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!