Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX_ALUNOS 1
- #define TAM_NOME 50
- /* 1. No programa do exemplo 1, acrescente na estrutura que representa o aluno um campo para
- armazenar a quantidade de faltas. Faça as modificações necessárias no programa para que o novo
- campo seja utilizado na entrada e saída de dados. Dê um bônus de 0,5 pontos na média final para o
- aluno que não tem faltas.
- Para isso, crie as seguintes duas funções:
- a função 'solicitaFaltas' que faz a entrada da quantidade de faltas. Observe o
- funcionamento semelhante da função 'solicitaNota'
- a função ‘bonusMedia’, que retorna 0,5 pontos sempre que o aluno não tiver faltas. Para isso, ela
- deverá receber a quantidade de faltas como argumento. Faça a sua chamada de dentro da
- função ‘calculaMedia’ para acrescentar a pontuação de bônus de forma apropriada e altere o
- que for necessário em ‘calculaMedia’.
- Sugestão para o protótipo destas funções:
- float solicitaNota(void);
- float calculaMedia(float nota1, float nota2, float pontos, int fal);
- float bonusMedia(int fal); */
- struct TipoAluno {
- char nome[TAM_NOME];
- float media;
- int faltas;
- };
- int solicitaFaltas()
- {
- int faltas;
- do{
- printf("\n Digite o numero de faltas: ");
- scanf("%d",&faltas);
- if(faltas<0) printf("\n ERROR: Numero negativo!");
- }while(faltas<0);
- return faltas;
- }
- float solicitaNota()
- {
- float nota;
- do {
- scanf("%f", ¬a);
- if(nota < 0 || nota > 10)printf("Erro, valor deve ser de 0 a 10 \n");
- }while(nota < 0 || nota > 10);
- return nota;
- }
- float bonusMedia(int faltas)
- {
- float bonus=0;
- if(faltas==0) bonus=0.5;
- return bonus;
- }
- float calculaMedia(float nota1,float nota2,float pontos,int faltas)
- {
- float bonus=bonusMedia(faltas);
- float media = (nota1+nota2)/2 + pontos+bonus;
- return media;
- }
- void exibeAluno(struct TipoAluno aluno)
- {
- printf("\n\nAluno: %s", aluno.nome);
- printf(" Media: %.2f", aluno.media);
- }
- int main()
- {
- struct TipoAluno alunos[MAX_ALUNOS];
- float nota1, nota2, pontos;
- int i=0;
- char opcao;
- while(i<MAX_ALUNOS)
- {
- printf("\nEntre com o nome do aluno: ");
- __fpurge(stdin);
- fgets(alunos[i].nome,TAM_NOME,stdin);
- printf("Entre com a primeira nota (0 a 10): ");
- nota1 = solicitaNota();
- printf("Entre com a segunda nota (0 a 10): ");
- nota2 = solicitaNota();
- printf("Entre com os pontos (0 a 10): ");
- pontos = solicitaNota();
- alunos[i].faltas=solicitaFaltas();
- alunos[i].media = calculaMedia(nota1, nota2, pontos,alunos[i].faltas);
- i++;
- }
- for(i=0; i < MAX_ALUNOS; i++)
- {
- exibeAluno(alunos[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement