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

Encontrar posición de un número en un array aleatorio.

Estas en el tema de Encontrar posición de un número en un array aleatorio. en el foro de C/C++ en Foros del Web. Hola, pues hace poco comenze a aprender a programar en C por mi propia cuenta ya que aún estoy en el colegio, el punto es ...
  #1 (permalink)  
Antiguo 14/10/2010, 23:21
 
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 14 años, 1 mes
Puntos: 0
Encontrar posición de un número en un array aleatorio.

Hola, pues hace poco comenze a aprender a programar en C por mi propia cuenta ya que aún estoy en el colegio, el punto es que quiero realizar un ejercicio de varios puntos

En un array de 50, encontrar:
- El mayor
- El menor
- La moda
- Ordenarlos de mayor a menor y viceversa
- Encontrar en que posición se halla el mayor, menor y moda

Ya hice casi todos, solo me falta poder encontrar las posiciones, aquí les muestro como va mi código, por favor no utilicen funciones que no quiero usarlas todavía jeje gracias

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <time.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.   int mayor=0, menor=50, i, x=0, cmoda=0, con=0,k,moda,y=0,ord,z;
  7.   float media;
  8.   int num[50];
  9.  
  10.   //Iniciamos la función para randomizar
  11.   srand(time(NULL));
  12.  
  13.  
  14.   //Trabajamos el array para obtener mayor, menor, media y moda
  15.   for(i=0;i<50;i++)
  16.   {
  17.     num[x++]=(rand()&#37;50);
  18.     if(i==25)
  19.      printf("\n");
  20.      
  21.     printf("%.2d ", num[i]);
  22.    
  23.   }  
  24.    
  25.   for(i=0;i<50;i++)
  26.   {  
  27.  
  28.     media += num[i];
  29.    
  30.     //Con esto obtenemos el mayor y el menor
  31.     if(mayor < num[i])
  32.       mayor=num[i];
  33.       posmay=i;
  34.     if(menor > num[i])
  35.       menor=num[i];
  36.    
  37.      
  38.     //Comparamos el vector randomizado con uno normal para ver cuantos numeros se repiten
  39.     //Si se repiten con aumenten en 1 cada vez
  40.     con=0;
  41.     for(k=0;k<50;k++)
  42.     {
  43.       if(i!=k && num[i]==num[k])
  44.         con++;    
  45.       if(con>cmoda)
  46.       {
  47.         moda=num[i];
  48.         cmoda=con;
  49.       }
  50.     }
  51.    
  52.   }
  53.  
  54.  
  55.   //Ordenamiento por metodo burbuja de mayor a menor
  56.   for (i=0; i<50-1; i++)
  57.   {
  58.     for (z=i+1; z<50; z++)
  59.     {
  60.       if (num[i] < num[z])
  61.       {
  62.         ord = num[i];
  63.         num[i] = num[z];
  64.         num[z] = ord;    
  65.       }
  66.     }
  67.   }
  68.  
  69.   //Lo imprimimos
  70.   printf("\nOrdenado de mayor a menor\n");
  71.   for(i=0;i<50;i++)
  72.   {
  73.     printf("%.2d ",num[i]);
  74.     if(i==24)
  75.       printf("\n");
  76.   }
  77.  
  78.   //Ahora de menor a mayor  
  79.   for (i=0; i<50-1; i++)
  80.   {
  81.     for (z=i+1; z<50; z++)
  82.     {
  83.       if (num[i] > num[z])
  84.       {
  85.         ord = num[i];
  86.         num[i] = num[z];
  87.         num[z] = ord;    
  88.       }
  89.     }
  90.   }
  91.  
  92.   printf("\nOrdenado de menor a mayor\n");
  93.   for(i=0;i<50;i++)
  94.   {
  95.     printf("%.2d ",num[i]);
  96.     if(i==24)
  97.       printf("\n");
  98.   }
  99.  
  100.  
  101.   if(moda>1)
  102.     printf("El número que más se repite es %d y se repite %d veces\n",moda,cmoda+1);  
  103.   else
  104.     printf("\n\nNo hay moda\n");    
  105.    
  106.   printf("El número mayor es %d\n", mayor);
  107.   printf("El número menor es %d\n", menor);
  108.   printf("La media es %.2f\n", media/= 50);
  109.  
  110.   return 0;
  111. }

Gracias de antemano

Última edición por david_93; 15/10/2010 a las 00:07
  #2 (permalink)  
Antiguo 15/10/2010, 02:36
 
Fecha de Ingreso: septiembre-2010
Ubicación: http://nomenrecordo.blogspot.com/
Mensajes: 111
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Encontrar posición de un número en un array aleatorio.

Puest tal y como guardas el valor que contiene la posición [i] del array pues también te guardas i en otra variable y ya tienes la posición ;)
  #3 (permalink)  
Antiguo 15/10/2010, 17:50
 
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Encontrar posición de un número en un array aleatorio.

Creo que ya e probado lo que comentas o al menos eso creo, no podrías aplicarlo al código haber si te funciona?.
  #4 (permalink)  
Antiguo 15/10/2010, 19:36
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Encontrar posición de un número en un array aleatorio.

por ejemplo: cuando haces esto:
Código C++:
Ver original
  1. if(mayor < num[i])
  2.       mayor=num[i];
  3.       posmay=i;
  4.     if(menor > num[i])
  5.       menor=num[i];

agregas una variable nueva:

Código C++:
Ver original
  1. if(mayor < num[i]){
  2.       mayor=num[i];
  3.       posmay=i;}
  4.     if(menor > num[i]){
  5.       menor=num[i];
  6.       posmenor=i
  7. }

Te estaban faltando las llaves en el if para que tome las dos expresiones.
  #5 (permalink)  
Antiguo 15/10/2010, 20:51
 
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Encontrar posición de un número en un array aleatorio.

Pero que despistado e sido, habría terminado ese ejercicio hace rato sino fuera por no poner las llaves xD

Gracias a los dos por responder

Etiquetas: encontrar, aleatoria
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 13:41.