Ir ao conteúdo
  • Cadastre-se

Retornar um Ventor em uma Função


Danilo Lopes

Posts recomendados

Aluguem poderia me dizer como fazer para a função retornar um vetor ou outro modo como eu possa resolver este exercício.

3)Dado um vetor, implemente uma função que imprima os

valores contidos no vetor ordenados.

 

# include <iostream>

using namespace std;

 

const int MAX = 5;

int ordenadoo (int vet[]);

 

int main (){

int vet[MAX];

int ordenado[MAX];

 

cout << "Insira os dados no vetor: \n";

for (int i = 0; i < MAX ; i++){

cin >> vet;

}

 

ordenado[MAX] = ordenadoo(vet);

cout << "Os numeros ordenados sao os seguintes: ";

for (int i = 0 ; i < MAX ; i++){

cout << vet;

}

 

 

}

 

int ordenadoo (int vet[]){

int x = 0;

 

for (int i = 0 ; i < (MAX -2) ; i++){

for (int j = 0 ; j < (MAX -1); j++){

if (vet > vet[j]){

x = vet;

vet = vet[j];

vet[j] = x;

}

}

}

 

return vet;

}

Link para o comentário
Compartilhar em outros sites

A sua ordenação está modificando o vetor que não é pra mudar.

 

Faça assim:

int main (){    int vet[MAX];    int ordenado[MAX];     cout << "Insira os dados no vetor: \n";    for (int i = 0; i < MAX ; i++)    {        cin >> vet[i];    }     ordenadoo(vet, ordenado);     cout << "Os numeros nao ordenados sao os seguintes: ";    for (int i = 0 ; i < MAX ; i++)    {        cout << vet[i];    }    cout << endl;     cout << "Os numeros ordenados sao os seguintes: ";    for (int i = 0 ; i < MAX ; i++)    {        cout << ordenado[i];    }    cout << endl;     return 0;} void ordenadoo(int vet[], int ordenado[]){    int x = 0;    int i = 0;    int j = 0;     for (i = 0; i < MAX; i++) // Faz uma cópia de "vet" em "ordenado"        ordenado[i] = vet[i];     for (i = 0; i < MAX; i++) // Faz a ordenação de "ordenado"        for (j = i; j < MAX; j++)            if ( ordenado[i] > ordenado[j] )            {                x = ordenado[i];                ordenado[i] = ordenado[j];                ordenado[j] = x;            }}
  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Pra retornar um vetor inteiro não dá... normalmente você retorna apenas o endereço pra base dele.

Por exemplo:

 

int* funcaoQueRetornaVetor() {    int *novoVetor = new int[3]; // cria um vetor de 3 posições    novoVetor[0] = 1;    novoVetor[1] = 2;    novoVetor[2] = 3;    return novoVetor;} int main() {    int *ponteiroPraUmVetor;    ponteiroPraUmVetor = funcaoQueRetornaVetor(); // ponteiroPraUmVetor agora é o mesmo que um vetor de 3 posições     cout << ponteiroPraUmVetor[0] << endl;    cout << ponteiroPraUmVetor[1] << endl;    cout << ponteiroPraUmVetor[2] << endl;     delete[] ponteiroPraUmVetor;    return 0;}

 

No entanto, você tá programando em C++, não em C... o que quer dizer que você tem a sua disposição o incrível mundo da orientação a objetos, que todos aqueles pobres coitados do C não podem ter.

E um desses objetos é o VECTOR, que faz parte das bibliotecas padrões do C++. É um vetor prontinho pra você usar... e que não precisa de muita manutenção.

 

Um exemplo dele, e de uma função retornando um vetor:

 

#include <vector>...using namespace std; vector<int> funcaoQueRetornaUmVetor() {    vector<int> meuVetor;    meuVetor.push_back( 1 );    meuVetor.push_back( 2 );    meuVetor.push_back( 3 );    return meuVetor;} int main() {    vector<int> meuOutroVetor;    meuOutroVetor = funcaoQueRetornaUmVetor();     cout << meuOutroVetor.at(0);    cout << meuOutroVetor.at(1);    cout << meuOutroVetor.at(2);     return 0;}

 

push_back() adiciona um elemento no final do vetor. E at() acessa o elemento numa determinada posição.

Link para o comentário
Compartilhar em outros sites

Achei o código em C++ depressível!

Didaticamente falando, pois realça, o fato de que tudo acontece por debaixo dos panos.

Aonde mesma coisa é concebida em C, e bem mais claramente.

 

Daqui uns dias somente os engenheiros da MS saberão C!

 

Só mais uma coisa,

quando falo depressível estou me refiro a linguagem,

e não a quem usa, só acho que o conhecimento de como tudo acontece fica longe dos olhos!

 

Um engenheiro de programação americano (não lembro o nome) falou algo parecido também;

e Mais disse ele,

"tudo que é escrito em C++, e copilado para C antes dos  Assembly... Só não sabe, quem ainda vai aprender."

 

Minha conclusão disso é que C ainda é o top da família!   

Link para o comentário
Compartilhar em outros sites

@

C++ é para vencedores!!! Deixe de besteira e converta-se também. Suas structs terão funções! Suas funções terão templates! Chega de stdio! O que está esperando, rapaz?

Já até arrumei um logotipo novo pra você substituir esse que tá usando agora:

http://www.azulweb.net/wp-content/uploads/2014/02/cpp-logo-dribbble.png

 

 

 

 

 

 

 

...

(brincadeira hein... eu adoro C)

:)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!