Advertisement
Guest User

Teste A Grupo I

a guest
Dec 18th, 2014
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.84 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. //Variáveis globais
  5. //Array de temperaturas
  6. float temperaturas[10000];
  7. //Variável reutilizada para recolher as temperaturas inseridas pelo utilizador
  8. float temperatura;
  9. //Apontador da posição no array
  10. int apontador = 0;
  11.  
  12. //Input do utilizador
  13. void input(){
  14.    
  15.     printf("Insira as temperaturas registadas uma de cada vez.\n");
  16.     printf("Insira -99 para terminar a sequencia de temperaturas.\n\n");
  17.  
  18.     while (temperatura != -99)
  19.     {
  20.         printf("Temperatura %d: ", apontador + 1);
  21.         scanf("%f", &temperatura);
  22.         if (temperatura != -99){
  23.             temperaturas[apontador] = temperatura;
  24.             apontador++;
  25.         }
  26.     }
  27. }
  28.  
  29. //Debug - escreve todo o array das temperaturas
  30. void escreverTemperaturas(){
  31.     printf("\nTemperaturas recolhidas:\n");
  32.     for (int i = 0; i < apontador; i++){
  33.         printf("%f\n", temperaturas[i]);
  34.     }
  35. }
  36.  
  37. //Devolve a media de todas as temperaturas recolhidas
  38. float mediaTemperaturas(){
  39.     float totalTemperaturas = 0;
  40.     for (int i = 0; i < apontador; i++){
  41.         totalTemperaturas += temperaturas[i];
  42.     }
  43.     return totalTemperaturas / apontador;
  44. }
  45.  
  46. //Devolve a temperatura mais próxima de 0 graus
  47. float temperaturaProxima0Graus(){
  48.     float temperaturaMaisProxima = 99999999;
  49.     float diferencaAteZero;
  50.     for (int i = 0; i < apontador; i++){
  51.         diferencaAteZero = abs(0 - temperaturas[i]);
  52.         if (diferencaAteZero < temperaturaMaisProxima){
  53.             temperaturaMaisProxima = temperaturas[i];
  54.         }
  55.     }
  56.     return temperaturaMaisProxima;
  57. }
  58.  
  59. int main(){
  60.  
  61.     //Recolher temperaturas do utilizador
  62.     input();
  63.  
  64.     escreverTemperaturas();
  65.  
  66.     //Escrever a media das temperaturas recolhidas
  67.     printf("\nA media das temperaturas foi de %f graus.\n", mediaTemperaturas());
  68.  
  69.     //Escrever a temperatura mais próxima de 0 graus
  70.     printf("A temperatura mais proxima de 0 graus foi %f graus.\n", temperaturaProxima0Graus());
  71.  
  72.     return 1;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement