/* Ejemplo definición y uso tipos estructurados */
#include <stdio.h>
#include <stdlib.h>

/* Esta definición de tipo fuera del main() es visible para todo el programa */
typedef struct {
        float maxima, minima, media;
        } TEMP;
main(){
 TEMP temp_mes[31];  /* Vector de temperaturas: 30, uno para cada día*/
 int i, dias;
 printf("\nNumero de dias del mes: ");
 do  
   scanf("%d", &dias); 
 while (dias < 28 || dias > 31);
 /* Doy valores aleatorios mediante rand(). Me aseguro que las minimas < maximas */
 for (i=0; i < dias; i++) {
     /* En vez de leer los datos de maxima y minima los genero de forma aleatoria*/
     temp_mes[i].maxima = (float) (rand() % 40);
    /* Me aseguro de que la minima sea mayor al menos que la máxima */
     do  temp_mes[i].minima = (float) (rand() % 25);
     while (temp_mes[i].minima > temp_mes[i].maxima);
     temp_mes[i].media = (temp_mes[i].maxima + temp_mes[i].minima)/2;
 };
 for (i=0; i < dias; i++)
   printf("\nDia %d Maxima %5.2f Minima %5.2f Media %5.2f", i+1, temp_mes[i].maxima, 
     temp_mes[i].minima, temp_mes[i].media);    
 /* Has visto que rand() no es muy aleatorio. Se puede arreglar utilizando srand()*/    
 printf("\nHe terminado\n");                   
 system("pause");
}
