Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX_ALUNOS 30
- #define TAM_NOME 50
- struct TipoAluno {
- char nome[TAM_NOME];
- float media;
- };
- float solicitaNota(void);
- int solicitaFalta(void);
- float calculaMedia(float nota1, float nota2, float pontos, int fal);
- float bonusMedia(int fal);
- void exibeAlunos(struct TipoAluno aluno[]);
- int main() {
- struct TipoAluno alunos[MAX_ALUNOS];
- float nota1, nota2, pontos;
- int i,faltas;
- for(i=0; i < MAX_ALUNOS; i++) {
- printf("\nEntre com o nome do aluno: ");
- fflush(stdin);
- gets(alunos[i].nome);
- 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();
- printf("Entre com a quantidade de faltas do aluno :\n");
- faltas = solicitaFalta();
- alunos[i].media = calculaMedia(nota1, nota2, pontos, faltas);
- }
- printf("\n\nExibicao dos dados:");
- exibeAlunos(alunos);
- return 0;
- }
- float solicitaNota(void) {
- 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;
- }
- int solicitaFalta(void) {
- int falta;
- scanf("%d",&falta);
- return falta;
- }
- float calculaMedia(float nota1, float nota2, float pontos, int faltas) {
- float media = (nota1 + nota2)/2 + pontos;
- if(media >= 10)
- return 10;
- else
- return media+bonusMedia(faltas);
- }
- void exibeAlunos(struct TipoAluno aluno[]) {
- int i;
- for(i=0; i < MAX_ALUNOS; i++) {
- printf("\n\nAluno: %s", aluno[i].nome);
- printf("\nMedia: %.2f", aluno[i].media);
- }
- }
- float bonusMedia(int faltas) {
- if(faltas == 0)
- return 0.5;
- else
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment