Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/10/2010, 23:21
david_93
 
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