Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
struct aluno
{
char nome[81];
char matricula[8];
char turma;
float p1;
float p2;
float p3;
};
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);
Tentei fazer o seguinte código
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct aluno
{
int mat;
char nome[81];
char end[121];
char tel[21];
};
typedef struct aluno Aluno;
#define MAX 100
Aluno* tab[MAX];
void inicializa (int n, Aluno** tab) /funçãos para imprimir os aprovados/
{
int i;
for (i=0; i<n; i++)
tab[i] = NULL;
}
void preenche (int n, Aluno** tab, int i)
{
if (i<0 || i>=n) {
printf("Indice fora do limite do vetor\n");
exit(1);
}
if (tab[i]==NULL)
tab[i] = (Aluno*)malloc(sizeof(Aluno));
printf("Entre com a matricula");
scanf("%d", &tab[i]->mat);
printf("Entre com o nome");
scanf("%80[^\n]", &tab[i]->nome);
printf("Entre com o endereco");
scanf("%120[^\n]", &tab[i]->end);
printf("Entre com o telefone");
scanf("%20[^\n]", &tab[i]->tel);
}
void retira (int n, Aluno** tab, int i)
{
if (i<0 || i>=n) {
printf("Indice fora do limite do vetor\n");
exit(1);
}
if (tab[i] !=NULL)
{
free(tab[i]);
tab[i] = NULL;
}
}
void imprime (int n, Aluno** tab, int i)
{
if (i<0 || i>=n) {
printf("Indice fora do limite do vetor\n");
exit(1);
}
if (tab[i]!=NULL)
{
printf("\n\nMatricula: %d\n", tab[i]->mat);
printf("\n\nNome: %s\n", tab[i]->nome);
printf("\n\nEndereco: %s\n", tab[i]->end);
printf("\n\nTelefone: %s\n", tab[i]->tel);
printf("\n\n");
}
}
void imprime_tudo (int n, Aluno** tab)
{
int i;
for (i=0; i<n; i++)
imprime(i);
}
/programa principal/
main(){
Aluno* tab[10];
preenche(10,tab,0);
preenche(10,tab,1);
preenche(10,tab,1);
imprime_tudo(10,tab);
retira(10,tab,0);
retira(10,tab,1);
retira(10,tab,2);
getch();
}
Alguém poderia me ajudar?
Carregando comentários...