Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define MAX 2
- /* 7. Desenvolva um programa para permitir o cadastro de 50 alunos. Cada aluno deve ser representado
- por uma estrutura formada por uma matrícula (exatamente 5 caracteres contendo letras e números), um
- nome (máximo de 40 caracteres) e um histórico de notas. O histórico de notas, que também deve ser
- representado por uma estrutura, é composto de duas notas de provas, uma nota de trabalho e uma nota
- de pontuação extra.
- Elabore uma função para calcular e retornar a média das notas. Esta média é calculada somando-se as
- quatro notas e dividindo-se por três. Se o resultado for superior a 10 deve-se retornar 10.
- Exiba todas as informações cadastradas e a média das notas de cada aluno. Além disto, calcule e exiba
- a quantidade de alunos cuja média foi de 7 a 10, e exiba a maior média dos 50 alunos.
- Obs.:
-
-
-
-
- não permita digitação de notas fora da faixa de 0 a 10;
- sempre que possível reaproveite o código através da modularização;
- escreva o protótipo da função que calcula a média;
- use somente variáveis locais para resolver este problema. */
- struct TipoHistoricoNotas{
- float notap1;
- float notap2;
- float notat1;
- float pontExtra;
- };
- struct TipoAluno{
- char matricula[6];
- char nome[40];
- struct TipoHistoricoNotas notas;
- float mediaFinal;
- };
- float media(struct TipoAluno alunos);
- void mostrarTela(struct TipoAluno alunos[])
- {
- int i;
- for(i=0;i<MAX;i++)
- {
- printf("\n\n Matricula: %s",alunos[i].matricula);
- printf("\n Nome: %s",alunos[i].nome);
- printf(" Media: %.3f",alunos[i].mediaFinal);
- }
- }
- void media7a10(struct TipoAluno alunos[])
- {
- int cont=0,i;
- float maior=0;
- for(i=0;i<MAX;i++)
- {
- if(alunos[i].mediaFinal>=7) cont++;
- if(alunos[i].mediaFinal>maior) maior=alunos[i].mediaFinal;
- }
- printf("\n\n\n Qtde alunos media >= 7 : %d",cont);
- printf("\n Maior media: %.3f",maior);
- }
- void cadastrar(struct TipoAluno alunos[])
- {
- int i;
- for(i=0;i<MAX;i++)
- {
- printf("\n Digite a matricula: ");
- __fpurge(stdin);
- fgets(alunos[i].matricula,6,stdin);
- printf("\n Nome: ");
- __fpurge(stdin);
- fgets(alunos[i].nome,40,stdin);
- printf("\n Nota P1: ");
- scanf("%f",&alunos[i].notas.notap1);
- printf("\n Nota P2: ");
- scanf("%f",&alunos[i].notas.notap2);
- printf("\n Nota T1: ");
- scanf("%f",&alunos[i].notas.notat1);
- printf("\n Ponto extra: ");
- scanf("%f",&alunos[i].notas.pontExtra);
- alunos[i].mediaFinal=media(alunos[i]);
- }
- }
- int main()
- {
- struct TipoAluno alunos[MAX];
- cadastrar(alunos);
- mostrarTela(alunos);
- media7a10(alunos);
- return 0;
- }
- float media(struct TipoAluno alunos)
- {
- float mediaFinal;
- mediaFinal = (alunos.notas.notap1+alunos.notas.notap2+alunos.notas.notat1+alunos.notas.pontExtra)/3;
- if(mediaFinal>10) return 10;
- return mediaFinal;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement