document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* Estrutura que guardara todos os dados importantes do vetor */
  5. struct stats
  6. {
  7.   float *vetor;
  8.   int tam;
  9.   float media, variancia;
  10. };
  11.  
  12. /* Funcao que preenche o vetor de acordo com dados inseridos pelo usuario */
  13. void PreencheStats(struct stats *s);
  14. /* Funcao que calcula a media do vetor */
  15. void Media(struct stats *s);
  16. /* Funcao que calcula a variancia do vetor
  17.    Ja presume que a variancia foi calculada */
  18. void Variancia(struct stats *s);
  19. /* Funcao que libera a memoria dinamica alocada anteriormente em PreencheStats() */
  20. void LiberaStats (struct stats *s);
  21.  
  22. int main(int argc, char *argv[])
  23. {
  24.   struct stats dados;
  25.   int j;
  26.  
  27.   PreencheStats(&dados);
  28.   Media(&dados);
  29.   Variancia(&dados);
  30.   printf("Media = %f \\n\\n", dados.media);
  31.   printf("Variancia = %f \\n\\n", dados.variancia);
  32.   LiberaStats(&dados);
  33.   return 0;
  34. }
  35.  
  36. void PreencheStats(struct stats *s)
  37. {
  38.   int j;
  39.   printf("Tamanho do vetor: ");
  40.   scanf("%d", &(s->tam));
  41.   s->vetor = (float*)malloc(s->tam*sizeof(float));
  42.   for(j=0; j<=(s->tam-1); j++)
  43.   {
  44.     printf("Insira o valor numero %d: ", j);
  45.     scanf("%f", &(s->vetor[j]) );
  46.   }
  47. }
  48.  
  49. void Media(struct stats *s)
  50. {
  51.   int j;
  52.   s->media = 0.0;
  53.   for(j=0; j<=(s->tam-1); j++)
  54.     s->media += s->vetor[j];
  55.   s->media /= (float)s->tam;
  56. }
  57.  
  58. void Variancia(struct stats *s)
  59. {
  60.   int j;
  61.   s->variancia = 0.0;
  62.   for(j=0; j<=(s->tam-1);j++)
  63.     s->variancia += (s->vetor[j] - s->media)*(s->vetor[j] - s->media);
  64.   s->variancia /= (float)s->tam;
  65. }
  66.  
  67. void LiberaStats(struct stats *s)
  68. {
  69.   free(s->vetor);
  70. }
');