Advertisement
Hi52

Ejercicio 13

Nov 24th, 2014
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.39 KB | None | 0 0
  1. /*
  2.  * Mario Rubio
  3.  */
  4. #include <stdio.h>
  5. #include <ctype.h>
  6. #define fiebre 37.2
  7.  
  8. //Funcion que realiza la suma a partir del array temps[] de entrada
  9. double suma(int nm,double temps[]){
  10.     float sum=0;
  11.     int i;
  12.     for(i=1;i<=nm;++i){
  13.         sum=sum+temps[i-1];
  14.     }
  15.     return sum;
  16. }
  17. //Funcion que obtiene el minimo a partir del array[] temps de entrada
  18. double minimo(int nm, double temps[]){
  19.     int i;
  20.     float min=44;
  21.     for(i=1;i<=nm;++i) if(temps[i-1]<min) min=temps[i-1];;
  22.     return min;
  23. }
  24. //Funcion que obtiene el maximo a partir del array[] temps de entrada
  25. double maximo(int nm, double temps[]){
  26.     int i;
  27.     float max=30;
  28.     for(i=1;i<=nm;++i) if(temps[i-1]>max) max=temps[i-1];;
  29.     return max;
  30. }
  31. int main(){
  32.     int nm; //Numero de medidas tomadas.
  33.     char rep;
  34.     while(1){
  35.         //Se solicita el numero de medidas tomadas y se comprueban que sean menos de 10
  36.         printf("Escriba cuantas medidas de la temperatura se han tomado. >");
  37.         scanf("%d",&nm);
  38.         if((nm>10)||(nm<=0)){
  39.             printf("introduce como maximo 10 temperaturas.");
  40.             continue;
  41.         }
  42.         double temps[nm];
  43.         int i;
  44.         for(i=1;i<=nm;++i){
  45.             printf("Escriba la %d medida tomada en grados centigrados. >",i);
  46.             while(1){
  47.                 scanf("%lf",&temps[i-1]);
  48.                 if((temps[i-1]<32)||(temps[i-1]>43)){
  49.                     printf("La temperatura debe estar comprendida entre 32 y 43 grados.\n");
  50.                     printf("Vuelva a inserta la %d temperatura. >",i);
  51.                     continue;
  52.                 }
  53.                 else break;
  54.             }
  55.         }
  56.         //Se muestra la temeperatura media
  57.         printf("La media de las temperaturas tomadas es de: %.2lf grados centigrados.\n",((suma(nm,temps)/nm)));
  58.         //Se muestra la temperatura minima y maxima.
  59.         printf("La temperatura minima seria de %.2lf grados y la maxima de %.2lf grados.\n",minimo(nm,temps),maximo(nm,temps));
  60.         //Se muestra la semisuma.
  61.         float semisuma = (minimo(nm,temps)+maximo(nm,temps))/2;
  62.         printf("La semisuma de las temperaturas es de %.2lf.\n",semisuma);
  63.         //Se muestra las temperaturas superiores a 37.2
  64.         int nfieb=0;
  65.         for(i=1;i<=nm;++i){
  66.             if (temps[i-1]>=fiebre) ++nfieb;
  67.         }
  68.         printf("Se han producido %d tomas con fiebre.\n",nfieb);
  69.         //Pregunta si se quiere repetir el programa
  70.         while(1){
  71.             printf("Quiere repetir el proceso con otros datos, escriba s para repetir, o n para cerrar. >");
  72.             fflush(stdin);
  73.             scanf("%c",&rep);
  74.             rep=tolower(rep);
  75.             if((rep=='n')||(rep=='s')) break;
  76.             else continue;
  77.         }
  78.         if(rep=='n') break;
  79.     }
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement