Máximo elemento de un conjunto de números

De Ejercicios

Contenido

Enunciado

Este programa calcula el máximo entre un conjunto de números enteros. Para ello se sigue el siguiente algoritmo: se crea una variable llamada max, a la que se da inicialmente el valor de conjunto[0]. Luego se recorren paso a paso todos los elementos del vector, comparando el valor almacenado en la posición considerada del vector con el valor de la variable max. Si el valor de la posición considerada del vector es mayor que max, entonces se copia (se sustituye el valor) en la variable max este valor. De esta forma, una vez recorrido todo el vector, la variable max contendrá el máximo valor. Guarda este programa con el nombre maximo.c.

Soluciones

Programa en C por Angel

Solución comentada al Ejercicio:

/* fichero maximo.c */
/* Programa para calcular el máximo de un conjunto de números */
#include <stdio.h>
#define SIZE 5
void main(void) {
  int i, max, imax;
  int conjunto[SIZE];
  printf("Introduce %d valores:\n", SIZE);
  for (i=0; i<SIZE; i++) {
     printf("%d: ", i+1);
     scanf("%d", &conjunto[i] );
     printf("\n");
  }
  max=conjunto[0];
  imax=0;
  for (i=0; i<SIZE; i++) {
     if (conjunto[i]>max) {
          max=conjunto[i];
          imax=i;
       }
  }
  printf("\nEl maximo valor del conjunto es: %d.\n", max);
  printf("\ny esta en la posicion %d.\n", imax+1);
}

Comentario

Este programa es muy sencillo, si se entiende el algoritmo. La variable max acabará siendo igual al elemento mayor del conjunto, e imax indicará la posición del máximo.


Diseño en pseudocódigo

ALGORITMO Maximo
ENTRADAS:
    conjunto: ARRAY (0...SIZE-1) DE ENTEROS  (Elementos donde buscar el máximo)
SALIDAS:
    max:  ENTERO  (Valor del máximo)
    imax: ENTERO  (Posición del máximo)
VARIABLES:
    i: ENTERO
CONSTANTES:
    SIZE=5
INICIO
    (Pedir los valores al usuario)            
    ESCRIBIR "Introduce ", SIZE, " valores: "
    PARA i<--0 HASTA SIZE-1 C.I +1 HACER
        ESCRIBIR i+1
        LEER conjunto(i)
    FIN_PARA
    
    (Buscar el máximo)
    max<--conjunto(0)
    imax<--0
    PARA i<--0 HASTA SIZE-1 C.I +1 HACER
       SI conjunto(i)>max ENTONCES
          max<--conjunto(i)
          imax<--i
       FIN_SI
    FIN_PARA
                         
    (Mostrar los resultados)
    ESCRIBIR "El maximo valor del conjunto es: ", max
    ESCRIBIR "y está en la posicion: ", imax+1
FIN
Tipos de soluciones