Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Milosb

[Resolvido] Vetor Intersecção

Recommended Posts

Eae galera!

Estou fazendo um programa, mas não estou conseguindo fazer o vetor intersecção, que contém os valores em comum de duas matrizes..

Alguém sabe como fazer essa função?

 

Grato desde já.

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz isso uma vz e acho q é mais ow menos assim. entenda o simbolo '<-' como atribuição;

+ uma coisa neh, eu fiz ele em portugol, ai c tiver certo implementa ele em C e pronto.

 

Inicio
Variáveis: 
Inteiro: VetorA[50], VetorB[50], VetorC[50], n, m, k, i, j
Instruções
Escreva ("Digite o valor de indices do vetorA e do VetorB: ")
leia(n, m)
Para i de 0 até n-1 faça
 Escreva ("Digite o valor do VetorA["+VetorA[i]+"] : ")
 Leia (VetorA[i])
Fim_Para
Para i de 0 até m-1 faça
 Escreva ("Digite o valor do VetorB["+VetorB[i]+"] : ")
 Leia (VetorB[i])
Fim_Para
k<- -1
Para i de 0 até i < n faça
 Para j de 0 até j < m faça
  Se (VetorA[i] = VetorB[j])
   Então
	k<- k+1
	VetorC[k] <- VetorA[i]
   Fim_se
 Fim_Para
Para i de 0 até i < k faça
 Escreva ("VetorC[" + i +  "] = " + VetorC[i] )
Fim_Para
Fim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grato pela atenção!

Mas não estou conseguindo fazer.

 

Escreva("Digite o valor do VetorA["+VetorA+"] :")

Como fica essa parte na lingaugem C? Esses "+", e as aspas eu não entendi, e compilando da erro!

EDIT:Bom tirei aquelas aspas, e o sinal de mais para compilar. Depois de colocar os valores da erro!

 

abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa parte:

 

Para i de 0 até n-1 faça
    Escreva ("Digite o valor do VetorA["+VetorA[i]+"] : ")
    Leia (VetorA[i])
Fim_Para

Fica algo do tipo:

 

for (i=0;  i < n-1; i++){
    printf ("Digite o valor do VetorA[%i] : ", i);
     scanf("%i",&VetorA[i]);
   printf("\n");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ó velho eu acho q ta certo eu fiz isso no 1o sem.

 

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define nmmax 100
main()
{int a[nmmax], b[nmmax], c[nmmax]; 
int n, m, k, i,j; 
printf("===========================================================================
====\n");
printf("								  INTERSECCAO									 \n");
printf("===========================================================================
====\n");
while (0 == 0)
{
printf("\nDigite os valores de indices para o VetorA e o VetorB separados por espaco: ");
scanf("%d%d", &n, &m);
if ((n > 0 && n <= nmmax) && (m > 0 && m <= nmmax)) break;
else printf("\nValores dos indices do VetorA ou do VetorB digitados incorretamente");
}
printf("\n**************************************************************************
****\n");
for (i = 0; i < n; i++)
{printf("\n Entre com o valor do VetorA[%d]: ", i);
scanf("%d", &a[i]);
}
printf("\n-------------------------------------------------------------------------------\n");
for (i = 0; i < m; i++)
{printf("\n Entre com o valor do VetorB[%d]: ", i);
scanf("%d", &b[i]);
}
printf("\n-------------------------------------------------------------------------------\n");
k = 0; 
for (i = 0; i < n; i++)
 for (j = 0; j < m; j++)
if (a[i] == b[j])
{
c[k++] = a[i]; break;
}
for (i = 0; i < k; i++)
printf("		  VetorC[%d]= %5d\n", i, c[i]);
printf("-------------------------------------------------------------------------------\n\n");
printf("\n\n");
system("pause>>NULL");
return 0;
}

 

ai pra ficar dahora c faz td isso num loop q soh sai qnd o cara digitar -1 por exemplo..

flw

 

obs: TESTA O PROG HEIN

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.