Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda sobre arrays

Estas en el tema de Duda sobre arrays en el foro de C/C++ en Foros del Web. Hola a todos. Estoy haciendo un programa en C que intenta comparar los valores de un array inicial, con números aleatorios generados, para ver si ...
  #1 (permalink)  
Antiguo 12/06/2013, 09:33
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Duda sobre arrays

Hola a todos.

Estoy haciendo un programa en C que intenta comparar los valores de un array inicial, con números aleatorios generados, para ver si algún valor declarado coincide con alguno de los generados. Pero creo que la comparación la estoy haciendo mal. ¿Alguien me ayuda?

Muchas gracias por adelantado.

Código:
//   "n"       es el numero de numeros que el usuario desea generar

//   "v[i]" 	es el numero que sale cada vez

//   "i"      si se pone antes del if, muestra la posicion que ocupa cada numero (empezando desde 0)

//   "v[j]" 	es toda la secuencia completa de los numeros (si se pone antes del if)

//   "j" 		si se pone antes del if, muestra el numero de numeros (empezando desde el 0) que hay en cada secuencia

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



int main(void)
{ 


int a[5]={2, 4, 6, 8, 10};
int i=0, n=0, y=0, x=0, j=0;
int *v;



randomize();

printf("\n ***** N numeros 'aleatorios' ***** \n\n");

printf("\n ¿Cuantos numeros desea que se generen?: ");
scanf ("%d",&n);
fflush(stdin);


v = new int[n];

printf("\n\nLos %d numeros generados son:", n);


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

		fflush(stdin);
		v[i] =  (rand() % 6);
		printf(" %d", v[i]);

}

getch();

x=0;
//Aquí empezamos a contarlos
for (i=0;i<n;i=x)
 {
		
		for (j=0;j<n;j++)
			{
					fflush(stdin);
					if ( a[5]==v[j] ) //Aqui se compara cada numero con toda la secuencia completa  aleatoria de numeros (v[j])
					{
						fflush(stdin);
				printf("\n\n\nEl número %d coincide\n",a[5]);
					}
			}		

 }

} //MAIN

Última edición por Musiker; 12/06/2013 a las 09:42
  #2 (permalink)  
Antiguo 12/06/2013, 15:01
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Duda sobre arrays

Evidentemente eso lo estás compilando con un compilador de C++, ya que "new" no corresponde al lenguaje C. La verdad que no tengo idea que querés hacer con esto:

Código C++:
Ver original
  1. v = new int[5];

Si querés que v sea un array con 5 elementos del tipo int, debería ser (al menos en C):

Código C:
Ver original
  1. int v[5];

Por otro lado, al hacer:

Código C++:
Ver original
  1. a[5]==v[j]

Estás compranado el elemento número 5 (posición 4) del array "a", con el elemento número j del array "v". Según el comentario lo que quieres hacer es comparar todos los de "a" con v[j]:

Código C:
Ver original
  1. int i;
  2.  
  3. for (i = 0; i < 5; i++) {
  4.     if (a[i] == v[j]) {
  5.         printf("El numero %d coincide.\n", a[i]);
  6.     }
  7. }

Y por último, intenta indentar bien el código, como mucho usa 8 espacios para cada bloque, no más que eso, y las llaves van en la misma columna del bloque correspondiente.

Espero que te sirva!

  #3 (permalink)  
Antiguo 15/06/2013, 14:06
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda sobre arrays

Cita:
Iniciado por carbon Ver Mensaje
Evidentemente eso lo estás compilando con un compilador de C++, ya que "new" no corresponde al lenguaje C. La verdad que no tengo idea que querés hacer con esto:

Código C++:
Ver original
  1. v = new int[5];

Si querés que v sea un array con 5 elementos del tipo int, debería ser (al menos en C):

Código C:
Ver original
  1. int v[5];

Por otro lado, al hacer:

Código C++:
Ver original
  1. a[5]==v[j]

Estás compranado el elemento número 5 (posición 4) del array "a", con el elemento número j del array "v". Según el comentario lo que quieres hacer es comparar todos los de "a" con v[j]:

Código C:
Ver original
  1. int i;
  2.  
  3. for (i = 0; i < 5; i++) {
  4.     if (a[i] == v[j]) {
  5.         printf("El numero %d coincide.\n", a[i]);
  6.     }
  7. }

Y por último, intenta indentar bien el código, como mucho usa 8 espacios para cada bloque, no más que eso, y las llaves van en la misma columna del bloque correspondiente.

Espero que te sirva!

Muchísimas gracias por tu completa y elaborada respuesta! Saludos! :)
  #4 (permalink)  
Antiguo 15/06/2013, 14:20
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Duda sobre arrays

Código C++:
Ver original
  1. fflush(stdin);

Esto contradice a la norma y no está permitido. Funciona con ciertos compiladores y en ciertos entornos (windows).

Etiquetas: arrays, int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:58.