Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* 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.*/
- #include<stdio.h>
- #include<stdlib.h>
- struct cadastro{
- char nome[40];
- char matricula[5];
- float historico;
- float media;
- };
- float digitaNota(void){
- float nota;
- do{
- scanf("%f",¬a);
- if(nota<0 || nota>10)
- printf("erro:digite outra nota:");
- }while (nota<0 || nota>10);
- return nota;
- }
- float calculaMedia(float p1,float p2,float t1,float ponto){
- float novamedia;
- float qtd;
- novamedia=(p1+p2+t1+ponto)/3;
- if(novamedia>10)
- return 10;
- return novamedia;
- }
- float exibenomemedia(struct cadastro turma){
- printf("Aluno->%s ",turma.nome);
- printf("media->%.3f\n",turma.media);
- }
- int main(){
- struct cadastro turma[50];
- int i,qtd,x;
- float p1,p2,t1,ponto;
- for(i=0;i<2;i++){
- printf("digite o nome do aluno:");
- fflush(stdin);
- gets(turma[i].nome);
- printf("digite a matricula:");
- scanf("%s",&turma[i].matricula);
- printf("digite a nota da primeira prova:");
- p1=digitaNota();
- printf("digite a nota da segunda prova:");
- p2=digitaNota();
- printf("digite a nota do trabalho:");
- t1=digitaNota();
- printf("entre com o ponto extra:");
- ponto=digitaNota();
- for(x=0;x<2;x++){
- if(turma[i].media>7 || turma[i].media<10)
- qtd++;
- }
- turma[i].media= calculaMedia(p1,p2,t1,ponto);
- }
- printf("temos %.0d alunos com media entre 7 e 10!\n",qtd);
- printf("\n\n\nexibição dos nomes e medias:\n");
- for(i=0;i<2;i++){
- exibenomemedia(turma[i]);
- }
- printf("\n\n");
- system ("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment