A maior rede de estudos do Brasil

Como receber dois vetores em um terceiro vetor ?

Exemplo:

char Primeiro[5][20] = {"Pedro", "Tiago", "Ana", "Bruno", "Camila"};
char Meio[5][20] = {"Oliveira", "Antunes", "Ferreira", "Santos", "Cunha"};
char Sobrenome[5][20] = {"Cardoso", "Silva", "Azevedo", "Monteiro", "Soares"};

char NomeCompleto[125][60];

Em que o vetor NomeCompleto[125][60]; irá receber os outros três, já tentei de diversas formas até concatenar e concatenar novamente porém sem sucesso;

NomeCompleto = strcat(Primeiro[iPrimeiro], strcat(Meio[iSegundo], Sobrenome[iTerceiro]));

crítica do compilador
main.c:57:48: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
                             NomeCompleto[i][i] = strcat(Primeiro[iPrimeiro], strcat(Meio[iSegundo], Sobrenome[iTerceiro]));

                                                           ^

Alguém poderia me ajudar ?


8 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

Para responder essa pergunta devemos colocar em prática nosso conhecimento sobre Estrutura de dados, algoritmos e lógica de programação.


Uma das formas de percorrer vetores de duas ou mais dimensões é utilizando laços de repetição aninhados. Dessa forma o laço mais interno percorre as colunas e o laço mais externo percorre as linhas. Você pode alterar isso invertendo os contadores de posição na matriz que irá conter todos os elementos.

Utilizando os dados que você passou vou deixar um exemplo em JS que você pode colocar em uma página HTML simples para visualizar o resultado pelo dev tools (atalho F12).

<script>

Primeiro = "Pedro", "Tiago", "Ana", "Bruno", "Camila"];

Meio = ["Oliveira", "Antunes", "Ferreira", "Santos", "Cunha"];

Sobrenome = ["Cardoso", "Silva", "Azevedo", "Monteiro", "Soares"];

NomeCompleto = new Array();

for(i=0; i<5; i++){

for(j=0; j<5; j++){

for(k=0; k<5; k++){

NomeCompleto.push(''+Primeiro[i]+" "+Meio[j]+" "+Sobrenome[k]);

}

}

}

console.table(NomeCompleto);

<script>

Nesse exemplo o vetor “NomeCompleto” foi criado e nele inserido todas as 125 possibilidades dos nomes, o contador “i” percorre o primeiro vetor, o contador “j” percorre o segundo vetor, e o contador “k” o terceiro.

Dessa forma se adicionar mais uma dimensão para esse vetor se tornar uma matriz, será necessário utilizar mais um laço de repetição.


Portanto para que um vetor receba dados de outros dois vetores, é necessário percorrer cada elemento do mesmo, e isso é possível através de um laço de repetição. Caso esse vetor possua mais de uma dimensão (matriz) são necessários mais laços de repetição de forma aninhada.

Para responder essa pergunta devemos colocar em prática nosso conhecimento sobre Estrutura de dados, algoritmos e lógica de programação.


Uma das formas de percorrer vetores de duas ou mais dimensões é utilizando laços de repetição aninhados. Dessa forma o laço mais interno percorre as colunas e o laço mais externo percorre as linhas. Você pode alterar isso invertendo os contadores de posição na matriz que irá conter todos os elementos.

Utilizando os dados que você passou vou deixar um exemplo em JS que você pode colocar em uma página HTML simples para visualizar o resultado pelo dev tools (atalho F12).

<script>

Primeiro = "Pedro", "Tiago", "Ana", "Bruno", "Camila"];

Meio = ["Oliveira", "Antunes", "Ferreira", "Santos", "Cunha"];

Sobrenome = ["Cardoso", "Silva", "Azevedo", "Monteiro", "Soares"];

NomeCompleto = new Array();

for(i=0; i<5; i++){

for(j=0; j<5; j++){

for(k=0; k<5; k++){

NomeCompleto.push(''+Primeiro[i]+" "+Meio[j]+" "+Sobrenome[k]);

}

}

}

console.table(NomeCompleto);

<script>

Nesse exemplo o vetor “NomeCompleto” foi criado e nele inserido todas as 125 possibilidades dos nomes, o contador “i” percorre o primeiro vetor, o contador “j” percorre o segundo vetor, e o contador “k” o terceiro.

Dessa forma se adicionar mais uma dimensão para esse vetor se tornar uma matriz, será necessário utilizar mais um laço de repetição.


Portanto para que um vetor receba dados de outros dois vetores, é necessário percorrer cada elemento do mesmo, e isso é possível através de um laço de repetição. Caso esse vetor possua mais de uma dimensão (matriz) são necessários mais laços de repetição de forma aninhada.

User badge image

n

Há mais de um mês

Bom dia, 

Se te ajudar aprova ai.

Abraço.

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

int main(int argc, char *argv[])
{

int vet1[5];
int vet2[5];
int vet3[10];

int i = 0;
int j = 0;
int temp = 0;

printf("Digite os números do vetor 1: \n\n");
for ( i = 0; i < 5; i++ )
scanf( "%d", &vet1[i] );

printf("Digite os números do vetor 2: \n\n");
for ( i = 0; i < 5; i++ )
scanf( "%d", &vet2[i] );

for ( i = 0; i < 5; i++ )
vet3[i] = vet1[i];

for ( i = 5; i < 10; i++ )
vet3[i] = vet2[i-5];

printf("[desordenado] vetor3: \n\n");
for ( i = 0; i < 10; i++ )
printf( "%d \n", vet3[i] );

/**
Ordenacao do vetor
**/
temp = vet3[0]; /* Inicializa variavel de comparacao */
for ( i = 0; i < 10; i++ )
for ( j = i; j < 10; j++ )
if ( vet3[j] < vet3[i] )
{
temp = vet3[j];
vet3[j] = vet3[i];
vet3[i] = temp;
}

printf("[ordenado] vetor3: \n\n");
for ( i = 0; i < 10; i++ )
printf( "%d \n", vet3[i] );

system("PAUSE");

return 0;
}
User badge image

Rafael

Há mais de um mês

Desconheço a linguagem que esta usando, mas seria algo assim: NomeCompleto [1] = nome [1]+ " " + meio[1] + " " + sobrenome[1]; Onde claro você usaria um laço de repetição e onde esta "1" você colocaria o contador.
User badge image

Leonardo

Há mais de um mês

blz vou fazer o teste aqui, a linguagem é C.

Essa pergunta já foi respondida por um dos nossos especialistas