Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

Ruka284

Programa que calcula a media de uma turma com N alunos

Mensagens Recomendadas

Ruka284    1
Ruka284

Programa que permita, com base em dois testes, calcular a media de uma turma com N alunos



#include<stdio.h>
#include<stdlib.h>
main()
{
float t1,t2,num,contTotal=0,teste;// t1 = teste1; t2= teste2
int num_alunos,aluno,i ;

printf("----------Para saber a media dos testes----------\n\n");//nome do programa

printf("\nIntroduza o numero de alunos-> ");
scanf("%d",&num_alunos);

for(i=0; i < num_alunos; i++)
{

		 printf ("\nIntroduza o valor dos teste do aluno %d: \n ",i+1);// introdução dados
		 printf("\n1 Teste -> ");
		 scanf("%f",&t1);
		 printf("2 Teste -> ");
		 scanf("%f",&t2);
		 printf("\n------------------\n");
	  }

 printf("\nEsta e a media dos testes: %.2f\n\n",  (t1+t2)/2); // formula de calculo
 system("pause");



}

Qual a vossa opinião ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
thoga31    594
thoga31

Então tu pedes as 2 notas para cada alunos, mas isto num_alunos vezes... Mas quando sais do ciclo, t1 e t2 só têm os últimos valores introduzidos: todos os outros foram para o galheto... Onde está a ser calculada a média de TODOS se só pegas nos 2 testes do ÚLTIMO aluno?

Lê e interpreta o teu código.


Knowledge is free!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Xpirito    3
Xpirito

Acho que a forma de cálculo está errada. Isto porque fazes a média de 2 testes dos alunos, mas não fazes a média total dos alunos.

Explicando: se tiveres 3 alunos

aluno1 t1= 15 t2 = 20

aluno2 t1= 20 t2 = 18

aluno3 t1= 03 t2 = 07

Isto usando o teu método de calculo dará algo como 40 de média.

E isto acontece porque só fazes a média das notas dos alunos e não a média das notas da turma.

Eu faria de forma algo diferente.

Declararia uma variavel (por exemplo) notas_totais;

essa variavel somava sempre os valores lidos ( t1 e o t2)

no final dividiria este total ( notas_totais) pelo valor inserido no total de alunos (num_alunos)

Abraço

Editado por Xpirito

Para perguntas idiotas, respostas estúpidas!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

Acho que a forma de cálculo está errada. Isto porque fazes a média de 2 testes dos alunos, mas não fazes a média total dos alunos.

Explicando: se tiveres 3 alunos

aluno1 t1= 15 t2 = 20

aluno2 t1= 20 t2 = 18

aluno3 t1= 03 t2 = 07

Isto usando o teu método de calculo dará algo como 40 de média.

errado ...

o resuktado que a aplicação apresenta será : 3+7 / 2 = 5 (está obviamente errado)

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
DiogoFialho    0
DiogoFialho

Deverias ir somando a uma variável auxiliar os valores de todos os testes e no fim fazer a divisão pelo número total de aluno.

ATENÇÃO: TENS DE VERIFICAR SE A QUANTIDADE DE ALUNOS NÃO É ZERO, SENÃO IRÁS TER UMA EXCEPÇÃO!!!!!!!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
fteixeira1993    9
fteixeira1993

Entao o que tu queres é fazer a media de testes na turma, logo, vais ter que criar uma variavel to tipo float (visto que as notas nao sao numeros inteiros) para armazenar a media das notas desse aluno e uma outra para somar a soma total dos testes para no ultimo printf ser mostrada a media total de notas da turma...

for(i=0; i<num_alunos; i++){
...
media_aluno = (t1+t2)/2;
media_total += media_aluno;
}

Mais não posso dizer porque senão estaria a fazer o teu trabalho xD

cumps,

fteixeira1993

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
waza    1
waza

Entao o que tu queres é fazer a media de testes na turma, logo, vais ter que criar uma variavel to tipo float (visto que as notas nao sao numeros inteiros) para armazenar a media das notas desse aluno e uma outra para somar a soma total dos testes para no ultimo printf ser mostrada a media total de notas da turma...

for(i=0; i<num_alunos; i++){
...
media_aluno = (t1+t2)/2;
media_total += media_aluno;
}

Mais não posso dizer porque senão estaria a fazer o teu trabalho xD

cumps,

fteixeira1993

ainda dava para simplificar mais, visto que ele nao precisa de media_aluno para mais tarde, fazes logo para a media_total !

Editado por waza

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    312
Rui Carlos

Entao o que tu queres é fazer a media de testes na turma, logo, vais ter que criar uma variavel to tipo float (visto que as notas nao sao numeros inteiros) para armazenar a media das notas desse aluno e uma outra para somar a soma total dos testes para no ultimo printf ser mostrada a media total de notas da turma...

for(i=0; i<num_alunos; i++){
...
media_aluno = (t1+t2)/2;
media_total += media_aluno;
}

Isso dá a soma das médias da turma, e não a média da turma. Não me parece que seja isso que se pretende calcular.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
DiogoFialho    0
DiogoFialho

Isso dá a soma das médias da turma, e não a média da turma. Não me parece que seja isso que se pretende calcular.

Concordo.

Devias era somar tudo e dividir pelo número total de alunos.

Ou seja:

Ciclo
...
total += mediaIntroduzida;
...
Fim ciclo

if(qtdAlunos != 0)
total /= qtdAlunos;

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.