C/Visual C - Duda sobre array

   
Vista:

Duda sobre array

Publicado por musiker (7 intervenciones) el 21/06/2013 17:28:25
Hola a todos.

Estoy haciendo un programa con arrays, y quería saber cómo puedo comparar un número perteneciente a un array con otro array completo. Por ejemplo: en mi programa hago:

arrayuno [ 1 ] y lo comparo con arraydos [ 1 ]

arrayuno [ 2 ] y lo comparo con arraydos [ 2 ]

arrayuno [ 3 ] y lo comparo con arraydos [ 3 ]

Pero lo quiero es hacer comparar arrayuno [ 1 ] con todos los valores de arraydos, después
arrayuno [ 2 ] con todas los valores de arraydos, y así sucesivamente...¿Alguien podría ayudarme? Aquí dejo el código.

Muchas por adelantado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
 
 
int main(void)
{
 
int arrayuno[8], i=0;
int arraydos[8]={2,4,6,8,10,12,14,16};
 
 
 
 
 
fflush(stdin);
 
 
 
randomize();
 
 
for (i=0; i<8; i++)
{
	fflush(stdin);
	arrayuno[i] =  (rand() % 51);
	printf(" %d", arrayuno[i]);
}
 
 
printf( "\n\nMUESTRA EL CONTENIDO DE 'ARRAYUNO' (NUMEROS ALEATORIOS GENERADOS)" );
 
for (i = 0; i < 8; i++) // MUESTRA EL CONTENIDO DE "ARRAYUNO" (NUMEROS ALEATORIOS GENERADOS)
 {
	fflush(stdin);
	printf( "\narrayuno[i] es %d", arrayuno[i] );
	fflush(stdin);
 }
 
 
printf( "\n\nMUESTRA EL CONTENIDO DE 'ARRAYDOS' (NUMEROS DEFINIDOS AL PRINCIPIO)" );
 
for (i = 0; i < 8; i++) // MOSTRAR EL CONTENIDO DE "ARRAYDOS" (NUMEROS DEFINIDOS AL PRINCIPIO)
 {
	fflush(stdin);
	printf( "\narraydos[i] es %d", arraydos[i] );
	fflush(stdin);
 }
 
 
for (i = 0; i < 8; i++) // COMPARAMOS LOS VALORES DE LOS 2 ARRAYS LLENADOS
 {
		if ( arrayuno[i] == arraydos[i] )
		{
			fflush(stdin);
			printf( "\n\nCOINCIDENCIA en el numero: %d", arrayuno[i] );
		}
 }
 
 
 
} //MAIN
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duda sobre array

Publicado por musiker (7 intervenciones) el 21/06/2013 18:42:10
Ya lo he conseguido hacer. Gracias de todas formas :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Duda sobre array

Publicado por xve (18 intervenciones) el 21/06/2013 21:19:52
Hola Musiker, nos puedes comentar como lo has solucionado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda sobre array

Publicado por musiker (7 intervenciones) el 22/06/2013 13:01:20
No sé si será la solución óptima para lo que deseaba, pero parece que funciona. Lo que hice fue añadir otro bucle "for" anidado en el último bucle del código, pero con otra variable distinta (en este caso jota "j"). Quedaría todo el programa igual desde el principio, excepto el último bucle "for" que quedaría así:

1
2
3
4
5
6
7
8
9
10
11
for (i = 0; i < 8; i++) // COMPARAMOS LOS VALORES DE LOS 2 ARRAYS LLENADOS
 {
	for ( j = 0; j < 8; j++ ) // LINEA NUEVA
		{
                    if ( arrayuno[i] == arraydos[j] ) //AQUÍ MODIFICAMOS TAMBIÉN: "ARRAYDOS [ J ]", NO "ARRAYDOS [ I ]" COMO ANTERIORMENTE
		     {
			fflush(stdin);
			printf( "\n\nCOINCIDENCIA en el numero: %d", arrayuno[i] );
		     }
               }
 }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda sobre array

Publicado por Chema (187 intervenciones) el 24/06/2013 01:29:46
i
1
2
3
4
5
6
7
8
9
10
11
12
13
nt main(void)
{
	int a[]={1,2,3,4,5,7,88};
	int b[]={1,9,3,4,45,67,45,24,24,24,88};
	int na = sizeof(a) / sizeof(a[0]);
	int nb = sizeof(b) / sizeof(b[0]);
	int *pa, *pb, i ,x;
 
	for(pa = a, i = 0; i < na ; i++, pa++ )
		for(pb =b,x = 0; x < nb ; x++, pb++ )
			 if(*pa == *pb)
				printf("pa:= %d  pb:= %d\n",*pa,*pb);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda sobre array

Publicado por musiker (7 intervenciones) el 24/06/2013 15:07:47
Muchas gracias Chema, pero te agradecería que me lo explicaras un poco porque no tengo conocimientos suficientes de C... no me queda demasiado claro lo de los punteros y sizeof
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda sobre array

Publicado por Chema (187 intervenciones) el 24/06/2013 19:45:21
Si conocemos el tamaño total "sizeof(a)",
y el tamaño de un elemento "sizeof(a[0])" y sabemos que todos los elementos
son iguales, entonces total/elemento nos dará el numero de elementos que compone
el total.
int na = sizeof(a) / sizeof(a[0]);
int na = sizeof(a) / sizeof(int);

punteros.... punteros.... punteros.... !Con lo sencillos que son! y los dolores de cabeza que causan.......

Aprende tú solo el uso de punteros, tienes un buen ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar