Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/12/2013, 12:08
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Array (coger un numero y compararlo con el resto)

Ok, el algoritmo es para encontrar el mayor de una lista; esa lista la puedes poner manualmente (como hice yo) o puedes preguntar al usuario cada valor (como hiciste tu).

Para preguntar al usuario ya lo tienes resuelto, pero tambien puedes hacerlo con un ciclo. Y ademas puedes incrementar la rapidez del calculo planteando la premisa inicial de que el valor mas grande es uno muy pequeño, luego cada vez que preguntas al usuario comparas y siempre tienes el mayor de los entrados en la lista. Algo asi:

Código C:
Ver original
  1. #define TAMLISTA 10
  2. static char *ORDINARIOS[TAMLISTA] = {
  3.     "primero", "segundo", "tercero",
  4.     "cuarto", "quinto", "sexto", "septimo",
  5.     "octavo", "noveno", "decimo"};
  6.  
  7.  
  8. int main() {
  9.     int q, lista[TAMLISTA];
  10.     int num_mayor = INT_MIN;
  11.  
  12.     for(q = 0; q < TAMLISTA; q++) {
  13.         printf("Entra el %s: ", ORDINARIOS[q]);
  14.         scanf("%d", &lista[q]);
  15.         if(lista[q] > num_mayor) {
  16.             num_mayor = lista[q];
  17.             printf("Ahora el mayor es el %d\n", num_mayor);
  18.         }
  19.     }
  20.  
  21.     printf("Finalmente el mayor es %d", num_mayor);
  22.  
  23.     return 0;
  24. }

De esta forma tal como vas entrando valores ya vas obteniendo el mayor. El INT_MIN está en la cabecera limits.h, y es el valor minimo al que puede llegar un int.

Lo de antes del sizeof no te preocupes, solo es para saber el nº de elementos sabiendo el tamaño de la lista y el tipo de dato, de esta forma si cambias el tamaño de la lista el ciclo sigue funcionando sin tocar nada; es una buena practica evitar los valores picados a mano hardcoded, es mejor usar defines para datos que vas a usar mas de una vez, de esta forma si tienes que cambiar algo solo cambias el define y te olvidas de buscar por dentro del codigo.

Saludos
vosk