Jump to content
Ruka284

Programa que calcula a media de uma turma com N alunos

Recommended Posts

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 ?

Share this post


Link to post
Share on other sites
HappyHippyHippo

olha bem para o que estás a fazer com as variáveis "t1" e "t2" (dentro do ciclo de preferência)


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

Share this post


Link to post
Share on other sites
HappyHippyHippo

nop ... como disse, só estás a contabilizar as notas do último aluno


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

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites
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

Edited by Xpirito

Para perguntas idiotas, respostas estúpidas!

Share this post


Link to post
Share on other sites
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)

Edited by HappyHippyHippo

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

Share this post


Link to post
Share on other sites
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!!!!!!!

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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 !

Edited by waza

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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;

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.