EnzoFerber
(usa FreeBSD)
Enviado em 24/10/2016 - 16:47h
SheilaLuna escreveu:
Bom Dia tenho uma dificuldade neste exercício com while se alguém puder me ajudar.
EX: Dada as notas dos alunos de uma turma informe a media da turma .
Total de alunos: 3
1º Nota 7
2º nota 7
3º nota 7
media = 7
Olá, boa tarde.
Pelo código que você postou, o que te falta é manter uma soma total das notas. Como o enunciado do exercício não diz nada a respeito de manter um registro das notas já digitadas, tudo o que você precisa é ter uma variável que vai manter uma soma total enquanto você digita outras notas. Usando o que você já começou, pergunta-se quantos alunos tem na sala e aí um loop pergunta a nota dos alunos. A medida que as notas são digitadas, um total é incrementado. Ao final, dividimos o total obtido pelo número de alunos, efetivamente obtendo uma média.
/* media.c
*
* (C) 2016 - Enzo Ferber, <enzoferber@gmail.com>
*/
#include <stdio.h>
int main(void)
{
int i, alunos;
float nota, nota_final = 0.0;
printf("Numero de alunos: "); scanf("%d", &alunos);
for(i = 0; i < alunos; i++) {
printf("Nota do aluno %d: ", i + 1);
scanf("%f", ¬a);
nota_final += nota;
}
printf("Media da sala de %d alunos: %.2f\n", alunos, nota_final/alunos);
return 0;
}
Explicando:
1) perguntamos quantos alunos são. Armazenamos o valor na variável
alunos .
2) iteramos
alunos vezes e,
2.1) em cada iteração
i ,
2.2) perguntamos uma nota e armazenamos em
nota , uma variável do tipo float
2.3) somamos a nota atual ao somatório total de nota, mantido em
nota_final e inicializada como zero,
3) ao final do loop, imprimimos a média, simplesmente fazendo
nota_final / alunos
Uma saída possível:
$ ./media
Numero de alunos: 5
Nota do aluno 1: 10
Nota do aluno 2: 9
Nota do aluno 3: 8
Nota do aluno 4: 7
Nota do aluno 5: 6
Media da sala de 5 alunos: 8.00
[]'s
Enzo Ferber
$ indent -kr -i8 src.c
"(...)all right-thinking people know that (a) K&R are _right_ and (b) K&R are right."
- linux/Documentation/CodingStyle - TORVALDS, Linus.