E o critério de aprovação é dado pelas media das três provas (p1,p2 e p3). A função devera obedecer ao seguinte protótipo:
void imprime_aprovados (int n, Aluno** turmas);
E também deverá ser feita uma função para imprimir a média dos alunos de uma determinada turma. E deverá seguir o seguinte protótipo:
float media_turma (int n, Aluno** turmas, char turma);
Fiz o seguinte:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct aluno
{
char nome[81];
char matricula[8];
char turma;
float p1;
float p2;
float p3;
};
typedef struct aluno Aluno;
#define MAX 3
Aluno* turmas[MAX];
void inicializa (int n, Aluno** turmas) /*funçãos para imprimir os aprovados*/
{
int i;
for (i=0; i<n; i++)
turmas[i] = NULL;
}
void preenche (int n, Aluno** turmas, int i)
{
if (i<0 || i>=n) {
printf("Indice fora do limite do vetor\n");
exit(1);
}
if (turmas[i]==NULL)
turmas[i] = (Aluno*)malloc(sizeof(Aluno));
printf("Entre com o nome");
scanf("%80[^\n]", &turmas[i]->nome);
printf("Entre com a matricula");
scanf("%c", &turmas[i]->matricula);
printf("Entre com a turma");
scanf("%120[^\n]", &turmas[i]->turma);
printf("Entre com a primeira nota");
scanf("%f", &turmas[i]->p1);
printf("Entre com a segunda nota");
scanf("%f", &turmas[i]->p2);
printf("Entre com a terceira nota");
scanf("%f", &turmas[i]->p3);
}
void imprime (int n, Aluno** turmas, int i)
{
if (i<0 || i>=n) {
printf("Indice fora do limite do vetor\n");
exit(1);
}
if (turmas[i]!=NULL)
{
printf("\n\nMatricula: %d\n", turmas[i]->matricula);
printf("\n\nNome: %s\n", turmas[i]->nome);
printf("\n\nTurma: %s\n", turmas[i]->turma);
printf("\n\n");
}
}
void imprime_aprovados (int n, Aluno** turmas)
{
int i;
float media;
float p1,p2,p3;
media = (p1+p2+p3)/3;
for (i=0; i<n; i++)
{
if (media>6.0)
{
imprime(n,turmas,i);
}
}
}
/*programa principal*/
main(){
Aluno* turmas[10];
preenche(10,turmas,0);
preenche(10,turmas,1);
preenche(10,turmas,1);
imprime_aprovados(10,turmas);
system("pause");
return 0;
}
Só que esta com erro para cadastrar a matrícula e também no final o programa não mostra os resultado esperado que e mostrar a média dos alunos aprovados
Pergunta
RS25
O programa deverá cadastrar alunos de uma determinada disciplina
e devera ser implementada uma função que imprima o número de matrícula, o nome, a turma e a média de todos os alunos aprovados na disciplina.
E deverá seguir o seguinte modelo de estrutura
E o critério de aprovação é dado pelas media das três provas (p1,p2 e p3). A função devera obedecer ao seguinte protótipo: void imprime_aprovados (int n, Aluno** turmas); E também deverá ser feita uma função para imprimir a média dos alunos de uma determinada turma. E deverá seguir o seguinte protótipo: float media_turma (int n, Aluno** turmas, char turma); Fiz o seguinte:Só que esta com erro para cadastrar a matrícula e também no final o programa não mostra os resultado esperado que e mostrar a média dos alunos aprovados
e mostrar os alunos aprovados.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.