#include #include int gauss(float vetor[], int n, float *media, float *mediana, float *desvio); float fmedia(float vetor[], int n); float fdesvio(float vetor[], int n, float media); void selectionSort(float vetor[], int tam); float fmediana(float vetor[], int n); float fmediana(float vetor[], int n) { float mediana; // ordenamos o vetor selectionSort(vetor, n); // caso n seja ímpar => a mediana estará na posição n/2 if (n%2) mediana = vetor[n/2]; // caso n seja par => a mediana será a média dos emelentos nas posições [n/2 - 1] e [n/2] else mediana = (vetor[(n/2) - 1] + vetor[n/2])/2; return mediana; } float fmedia(float vetor[], int n) { int i; float soma = 0; for( i = 0; i < n; i++) soma += vetor[i]; return (soma/n); } float fdesvio(float vetor[], int n, float media) { int i; float desvio = 0; for( i = 0; i < n; i++) desvio += pow(vetor[i] - media, 2); desvio = sqrt(desvio/n); return desvio; } int gauss(float vetor[], int n, float *media, float *mediana, float *desvio) { float lim_inf, lim_sup; int i, cont = 0; // atualização das medidas pedidas *media = fmedia(vetor, n); *desvio = fdesvio(vetor, n, *media); *mediana = fmediana(vetor, n); // contagem de notas no intervalo pedido lim_inf = *media - *desvio; lim_sup = *media + *desvio; for( i = 0; i < n; i++) if ((vetor[i] >= lim_inf) && (vetor[i] <= lim_sup)) cont++; return cont; } void selectionSort(float vetor[], int tam){ int i, j, min; float aux; for(i = 0; i < tam - 1 ; i++){ min = i; for(j = i + 1; j < tam; j++){ if(vetor[min] > vetor[j]) min = j; } aux = vetor[i]; vetor[i] = vetor[min]; vetor[min] = aux; } } int main (void) { float notas[60], media, mediana, desvio; float lim_inf, lim_sup; int i, n, res; printf("Digite o tamanho do vetor.\n"); scanf("%d", &n); for( i = 0; i < n; i++) scanf("%f", ¬as[i]); res = gauss(notas, n, &media, &mediana, &desvio); lim_inf = media - desvio; lim_sup = media + desvio; printf("A Mediana foi %.2f.\n", mediana); printf("A Média foi %.2f.\n", media); printf("O Desvio foi %.2f.\n", desvio); printf("%d alunos possuem nota da P1", res); printf(" no intervalo [%.2f, %.2f].\n", lim_inf, lim_sup); return 0; }