Ir ao conteúdo
  • Cadastre-se
Rorgrun

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

Recommended Posts

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

Editado por Rorgrun
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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 */

 

Editado por devair1010

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado Devair! 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×