Olá gostaria da ajuda de vocês, tenho que adicionar essas funções para esse código mas não estou tendo ideia de como fazer, se puderem me ajudar agradeço.
- contar quantos alunos foram processados
- acumular as médias individuais
- quando o processamento terminar, calcular a média geral dividindo-se o acumulado das médias individuais pelo total de alunos processados.
#include<stdio.h>#include<stdlib.h>#define TRUE 1#define FALSE 0#defineboolint/* Esta função questiona o usuario sobre continuar ou encerrar
* o processamento de notas de alunos
*/bool promptRepetir(){
printf("Novo aluno? [S|n] ");char c;
c=fgetc(stdin);// leia 1 caracter
fflush(stdin);// e limpe o bufferif( c=='s'|| c=='S'|| c=='\n')return TRUE;// repita!return FALSE;// nao repita!}/* Esta função calcula a média simples entre n valores x[i]
* Onde 0 < i < n
*/float mediaSimplesVetor(int n,float x[]){int i;float media, mediaTotal;float soma=0.0;for(i=0; i<n; i++) soma=soma+x[i];// calcule somatorio de Xi
media=soma/n;
mediaTotal=media/n;
printf("%5.1f",mediaTotal);return media;// retorne a media}/*
* Esta função le e retorna o numero do aluno
* Aceita apenas numeros positivos
*/int lerNumero(){int numero=0;// execute ao menos 1 iteração while()while( numero<1){
printf("Entre com o numero do aluno (positivo): ");char linha[10];// linha para leitura dos caracteres do valor
fgets(linha,10,stdin);// leia a linha (entrada do usuario)
fflush(stdin);// limpa o buffer de leitura
numero = atoi(linha);// converte numero em string para int};return numero;}/*
* Esta função le e retorna a nota i do aluno numAluno
* Aceita apenas notas entre 0.0 e 10.0 inclusive
*/float lerNota(int numAluno,int i){float nota=-1.0;// execute ao menos 1 iteração while()while( nota<0.0|| nota>10.0){
printf("Aluno %3d, nota %02d: ",numAluno,i);char linha[10];// linha para leitura dos caracteres do valor
fgets(linha,10,stdin);// leia a linha (entrada do usuario)
fflush(stdin);// limpa o buffer de leitura
nota = atof(linha);// converte numero em string para float};return nota;};/* Procedimento para processamento repetitivo de alunos */float processaAluno(){int numAluno;// numero do alunofloat notaAluno[4];// as 4 notas do alunofloat mediaAluno;// media final do aluno
numAluno = lerNumero();// ler o numero do alunoint i;for(i=0; i<4; i++){// para i de 0 até n-1 faça ...
notaAluno[i]= lerNota(numAluno, i+1);// ler a nota i};
mediaAluno = mediaSimplesVetor(4, notaAluno );// calcula a media simples das 4 notas
printf("\n");
printf("Media do aluno %d = %5.1f\n", numAluno, mediaAluno);
printf("\n");}/* Função Principal do programa */int main(int argc,char*argv[]){bool repetir;// controle do usuarioint i, n;do// faça...{
processaAluno();// processe notas de um aluno, e em seguida
repetir=promptRepetir();// pergunte ao usuario se quer repetir (com novo aluno)}while(repetir);// ... enquanto usuario solicitar repetição.
printf("\n// Fim do programa. Bye!! //\n");
system("PAUSE");return0;};
Olá gostaria da ajuda de vocês, tenho que adicionar essas funções para esse código mas não estou tendo ideia de como fazer, se puderem me ajudar agradeço.
- contar quantos alunos foram processados
- acumular as médias individuais
- quando o processamento terminar, calcular a média geral dividindo-se o acumulado das médias individuais pelo total de alunos processados.
Compartilhar este post
Link para o post
Compartilhar em outros sites