Ir ao conteúdo
  • Cadastre-se

C++ Função de Vetores em C++


Posts recomendados

Como crio uma rotina pro seguinte exercicio?

 

Crie uma função que receba dois vetores A e B de oito elementos inteiros como parâmetro. A função deverá determinar e mostrar um vetor C que contenha os elementos de A e B em ordem decrescente. O vetor C deverá ser mostrado no programa principal.

Link para o post
Compartilhar em outros sites

Oih @Moraes_27

Existem alguns caminhos para se chegar a uma resposta. Aquele que eu considero mais adequado para quem é iniciante excluiu estudo sobre qualquer algoritmo de ordenação porque eles não devem ser consultados até que consiga, intuitivamente, uma solução em C que melhor se aproxima da maneira que resolveria numa situação real.

 

Desde que tenha os saberes certo da linguagem C de programação não demora muito. Então, de que forma você juntaria esses conjuntos de dados, pode ser qualquer coisa, por exemplo, bolas numeradas, noutro conjunto em ordem decrescente ou crescente não importa?

 

Responda esta pergunta em sua cabeça e quando tive pronto, mostre-nos o código (ou tentativa).

 

Entretanto, você pode sempre escolher entre a oportunidade de aprender ou esperar pelo próximo que resolva por você.

Link para o post
Compartilhar em outros sites

Escreva em torno dos dados. O enunciado sugere uma função assim
 

    int*        ordena(int A[8], int B[8])

 

Então pode declarar logo. Dentro dessa função  vai criar um terceiro vetor com o conteúdo de A e B em ordem decrescente. Mas deve mostrar o resultado no programa principal e não na função e assim deve retornar o vetor, ou no caso o endereço de início dele, um int, o primeiro de 16 int...
 

4 horas atrás, Moraes_27 disse:

O vetor C deverá ser mostrado no programa principal.

 

Em main() então precisa criar os vetores A e B, preencher e mostrar na tela ou ninguém vai saber se seu programa funcionou. Aí chama a função que ordena e mostra o vetor C.

 

O simples é escrever uma função, como
 

	int 	mostra_vetor( int* V, int N, char* titulo );

 

assim em main() pode escrever
 

    mostra_vetor(A,8,"vetor A:");
    mostra_vetor(B,8,"vetor B:");
    mostra_vetor(C,16, "A e B em ordem decrescente:");

 

o que é bem conveniente já que vai ter que fazer a mesma coisa 3 vezes... E claro que vai querer por um título antes de cada vetor para mostrar o que vem a seguir...

 

Veja um programa que não faz nada mas tem a mecânica do que você precisa fazer:
 

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

int 	    mostra_vetor(int*,int,char*);
int*        ordena(int[8],int[8]);

int main()
{
    int A[8] = { 2, 4, 6, 8, 10, 12, 14, 16 };
    int B[8] = { -2, -4, -6, -8, -10, -12, -14, -16 }; 
    int* C = ordena(A,B);
    if (C == NULL) return -1; // algo deu errado
    printf("Ultimo valor do vetor C = %d\n", C[15]); // teste
    mostra_vetor(A,8,"vetor A:");
    mostra_vetor(B,8,"vetor B:");
    mostra_vetor(C,16, "A e B em ordem decrescente:");
    free(C);
    return 0;
}

int 	mostra_vetor( int* V, int N, char* mensagem )
{
    printf("teste: %s, %d\n", mensagem, N);
    // mostra na tela o vetor 'V'  com 'N' elementos
    return 0;
};

int*        ordena(int A[8], int B[8])
{
    int n_elementos = 16; // os 16
    int* novo = (int*) malloc( n_elementos * sizeof(int) );
    if ( novo == NULL ) return NULL; // nao conseguiu alocar
    // ok, alocou os 16
    novo[n_elementos-1] = 42; // poe um valor no ultimo
    return novo; // o esperado
};

 

Ele até roda, e mostra o esperado
 

Ultimo valor do vetor C = 42

 

Rode em sua máquina e procure entender o processo. É uma maneira segura de escrever essas coisas e pode começar a testar em minutos sem perder tempo lendo e mostrando coisas

Link para o post
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...

Os Mitos do Dinheiro

APENAS R$ 9,90!

CLIQUE AQUI E COMPRE AGORA MESMO!