Enunciado*: Sabe-se que os alunos calouros têm a expectativa de ser acima da média no início de suas graduações. Você deve checar quanto isso ocorre em diversas turmas. Para isso, faça um algoritmo que receba inicialmente quantas turmas serão avaliadas. Em seguida, para cada turma será inicialmente informado o número de alunos, seguida das médias finais de cada um dos alunos. Seu algoritmo deve mostrar o percentual de estudantes que estão acima da média na turma, com o valor arredondado e com 3 casas decimais.
Exemplo
Entrada | Saída |
5 5 50 50 70 80 100 7 100 95 90 80 70 60 50 3 70 90 80 3 70 90 81 9 100 99 98 97 96 95 94 93 91 | 40.000% 57.143% 33.333% 66.667% 55.556% |
*Exercício baseado em: 1214 – Acima da Média – beecrowd
Interpretando o exemplo de entrada, o primeiro valor 5 fornecido é a quantidade de turmas e por isso posteriormente são lidos 5 conjuntos de valores (as 5 linhas seguintes). Como são 5 turmas, a saída são também 5 valores calculados com os percentuais. Cada linha é uma turma, sendo o primeiro valor a quantidade de alunos
#include <stdio.h>
int main(){
int c, n, i;
float soma, s;
scanf("%d", &c); //ler quantidade de turmas
while(c > 0){
scanf("%d", &n); //ler quantos alunos
float num[n];
soma = 0;
s = 0;
//leitura das notas
for(i = 0; i < n; i++){
scanf("%f", &num[i]); //ler nota
soma += num[i];
}
soma /= n; //calcula média
//conta alunos acima da média
for(i = 0; i < n; i++){
if(num[i] > soma) {
s++;
}
}
printf("%.3f%\n",s/n*100);
c--;
}
return 0;
}
Teste o código em: https://ideone.com/TzW1VE