Ir ao conteúdo

Elaborar um programa que perm, com base em dois testes, calcular a media de uma turm


Ruka284

Posts recomendados

Postado

O problema e o seguinte:

- Elaborar um programa que perm, com base em dois testes, calcular a media de uma turma com N alunos.

#include<stdio.h>
#include<stdlib.h>

int main ()

{
float t1, t2, alunos,aluno,num,contTotal=0;// t1 = teste1; t2= teste2


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

printf("\n introduza o numero de alunos \n");
scanf("%f",&alunos);


printf ("\n introduza o valor do 1 teste \n");// introdução dados
scanf("%f",&t1);

printf ("\n introduza o valor do 2 teste \n");// introdução dados
scanf("%f",&t2);

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

while(num>0)
{
contTotal++;
printf("\n introduza o aluno \n");
scanf("%f",&aluno);
system ("pause");
}


}

Não estou a conseguir que me peça novamente o novo aluno e o valor do 1 teste e 2 teste, alguém me pode ajudar s.f.f.

Postado

Creio que a resolução com matriz e alocação dinâmica seja adequada.

Como são dois testes, o programa deve informar a nota dos alunos para cada um dos testes. Ou seja, cada aluno será cadastrado com duas notas.

Abaixo resolvi informar a média de cada teste e a média geral dos dois testes.


#include <stdio.h>
#include <stdlib.h>

#define COLUNAS 2

int main(void){
int alunos, x, y;
float **nota, soma_t1 = 0, soma_t2 = 0, soma = 0;

printf("Entre com o numero de alunos: ");
scanf(" %d", &alunos);

nota = (float**)malloc(sizeof(float*) * alunos);

for(x = 0; x < alunos; x++){
printf("-----------------------------------\n");
nota[x] = (float*)malloc(sizeof(float) * COLUNAS);

for(y = 0; y < COLUNAS; y++){
printf("Aluno - %02d | Nota do Teste #%d: ", (x + 1), (y + 1));
scanf(" %f", &nota[x][y]);
soma += nota[x][y];
}
}

for(x = 0; x < alunos; x++)
for(y = 0; y < COLUNAS; y++)
if(!y)
soma_t1 += nota[x][y];
else
soma_t2 += nota[x][y];

printf("\nMedia Teste 1: %.2f\n", soma_t1 / alunos);
printf("Media Teste 2: %.2f\n", soma_t2 / alunos);
printf("Media Geral: %.2f\n", soma / (alunos * COLUNAS));

return 0;
}

Postado

Ola oliver.

Obrigado pelo teu topico.

Este tipo de programar esta muito a frente do meu, ainda só estou no C numa fase de iniciação.

Se puderes simplificar eu gostaria s.f.f.

Postado

Boa tarde pessoal.

Sou novo no fórum, gostaria que vocês me ajudassem com um problema,

ou seja dificuldade mesmo.

Estou aprendendo C, e gostaria de saber como se faz um programa com intervalos de 2 em 2.

obrigado.

Postado

Olá claudio freitas, voce poderia criar um tópico e postar sua dúvida de uma forma mais clara. Assim poderemos compreender melhor sua dúvida.

Postado
Ola oliver.

Obrigado pelo teu topico.

Este tipo de programar esta muito a frente do meu, ainda só estou no C numa fase de iniciação.

Se puderes simplificar eu gostaria s.f.f.

No while você verifica a condição de num, mas em nenhum momento atribui valor a essa variável. Além disso, o loop está incrementando contTotal.

Faça com que while verifique contTotal.


while(contTotal<0)
{
contTotal++;
printf("\n introduza o aluno \n");
scanf("%f",&aluno);
system ("pause");
}

Ou atribua algum valor a num

Postado

Ruka284, aproveitei sei próprio código e fiz o mais simples possível, não sei se é isso o que voce quer, qualquer duvida é só postar

#include<stdio.h>

#include<stdlib.h>

int main ()

{

float t1, t2,contTotal=0;// t1 = teste1; t2= teste2

int alunos, i = 0;

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

printf("\n introduza o numero de alunos \n");

scanf("%d",&alunos);

while (i < alunos)

{

printf ("\n introduza o valor do 1 teste \n");// introdução dados

scanf("%f",&t1);

printf ("\n introduza o valor do 2 teste \n");// introdução dados

scanf("%f",&t2);

contTotal = (t1 + t2)/2;

printf("esta e a media dos testes do aluno %d: %.2f \n", i + 1,contTotal); // formula de calculo

i = i + 1;

}

return 0;

}

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!