Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Leandro Soares - 26/10/2011 */
- /* Programa completo, testado e comentado. */
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <string.h>
- #include <time.h>
- #include <ctype.h>
- #define TRUE 1
- typedef struct { // Funcao onde é guardada a data.
- int dia;
- int mes;
- int ano;
- }tagData;
- typedef struct { //Funcao membro onde é guardada uma nota e os campos respectivos.
- char sigla[4];
- int modulo;
- int cla;
- tagData data;
- }tagNota;
- typedef struct { // Funcao lider.
- char nome[20];
- int num;
- tagNota notas[91];
- int qtd;
- }tagAlunos;
- /* Prototipos de funcoes */
- tagAlunos AskName_and_Num(tagAlunos Aluno); // Funcao que pede o nome e o numero do Aluno.
- char Menu(void); // Funcao Menu, faz return de um char que representa uma accao.
- tagAlunos InserirNota(tagAlunos Aluno, char Siglas[][4]); // Funcao para inserir uma nota.
- void PreencherSiglas(char Siglas[][4]); // Funcao para preencher as siglas das disciplinas.
- tagAlunos PreencherStructAlunos(tagAlunos Aluno); // Preencher/inicializar a estructura Aluno do tipo tagAlunos.
- void VerificarModulo(tagAlunos Aluno, char sig[4], int nmod, int Array[]);
- /* Verificar se o modulo da disciplina introduzida, está disponivel. Array[] é uma array controladora,
- indice(0) controla se está disponivel, indice(1) controla em que posição está disponivel.*/
- void PAUSA(void); // Similar ao system("pause");
- void InserirData_Lanc(int datas[3]); // Inserir a data de lançamento das notas.
- int VerificarDia(int dia, int Dia_do_mes); // Verificar se o dia está em ordem.
- int Verificar_7Dias(int dia, int mes, int ano); // Verificar se o dia/mes/ano correspondem com a regra dos 7 dias antes.
- int Dias_do_Mes(int mes, int ano); // A funcao retorna quantos dias tem o mes em questão.
- int VerificarSiglas(char ctemp[], char siglas[][4]); // Funcao que verifica se a sigla introduzida está bem introduzida.
- tagAlunos ApagarNota(tagAlunos Aluno,char Siglas[][4]); // Funcao principal para apagar uma nota.
- void PedirSigla(char sigla[]); // Funcao que pede uma sigla (disciplina).
- tagAlunos ApagarN(tagAlunos Aluno, int startidx); // Funcao que apaga (puxa todas as variaveis da direita para a esquerda).
- float MediaPos_e_ModAtraso(tagAlunos Aluno, char Siglas[][4], int control[]); // Calcular a Media de todas as disciplinas e modulos em atraso.
- int MediaDisciplina(tagAlunos Aluno, char Sigla[4], int control[]); // Calcular Media por disciplina.
- int MaxModulos(int modulo, int indice); // Calcular o maximo de modulos que cada disciplina tem.
- int main() {
- /* Declaracoes */
- tagAlunos Aluno = { "\0", -1 };
- char op = '\0';
- char Siglas[11][4], sig[4];
- int control[2], idx, negativas;
- float media;
- /* Fim de Declaracoes */
- /* Inicializacoes */
- media = 0.0;
- control[0] = 0; // Notas positivas.
- control[1] = 0; // Notas negativas.
- idx = negativas = 0;
- PreencherSiglas(Siglas);
- Aluno = PreencherStructAlunos(Aluno);
- Aluno = AskName_and_Num(Aluno); // Leitura do nome e numero do Aluno.
- /* Fim de Inicializacoes */
- /* Menu principal */
- while(TRUE) {
- op = Menu();
- if( op == 't' ) // Se op = "t", o programa faz exit.
- break;
- if( op == 'q' ) { // Se op = "q" o programa solicita a entrada de uma nota.
- if( Aluno.qtd == 90 ) { // Se ja foram introduzidas 90 notas, o programa deixa de receber novas notas.
- system("cls");
- printf("Numero maximo de notas atingido!!!");
- continue;
- }
- Aluno = InserirNota(Aluno, Siglas); // Inserir uma nota.
- Aluno.qtd++; // Incrementar o controlo de notas.
- }
- else if( op == 'w' ) { // Se op = "w", o programa permite apagar uma nota.
- if( Aluno.qtd == 0 ) { // Se nao houverem notas introduzidas, nao se pode apagar uma nota.
- system("cls");
- printf("Numero minimo de notas atingido!!!");
- continue;
- }
- Aluno = ApagarNota(Aluno, Siglas); // Apagar um nota.
- Aluno.qtd--; // Decrementar o controlo de notas.
- }
- else if( op == 'e' ) { // Se, op = "e", o programa calcula a media do aluno.
- media = MediaPos_e_ModAtraso(Aluno, Siglas, control); // Esta funcao retorna a soma das medias de todas as disciplinas.
- /* control[0] sao as positivas */
- /* control[1] sao as negativas */
- system("cls");
- printf("Media: %.2f\n", media);
- printf("Modulos em Atraso: %d\n", control[1]);
- PAUSA();
- }
- else if( op == 'r' ) { // Se op = "r", o programa calcula a media de cada disciplina.
- system("cls");
- for(idx=0; idx < 11; idx++) { // Corre o ciclo 11 vezes (o numero de disciplinas).
- /* Idx, representa o indice que depois e usado na array bidimensional Siglas
- que e onde esta situado cada disciplina.*/
- media = MediaDisciplina(Aluno, Siglas[idx], control); // Retorna a media da disciplina introduzida.
- if( media != 0 || control[1] != 0 ) {
- printf("%s\n", Siglas[idx]); // Output da Disciplina.
- if( media != 0 )
- printf("\tMedia: %.2f\n", media); // Output da media.
- else if( control[1] != 0 )
- printf("\tModulos em Atraso: %d", control[1]); // Output dos modulos em atraso.
- }
- PAUSA();
- }
- }
- }
- return 0;
- }
- char Menu(void) {
- /* Declaracoes */
- char op = '\0';
- tagAlunos Aluno;
- system("cls");
- /* Ciclo que mostra o Menu ate ser pressionada uma das teclas: (q,w,e,r,t) */
- while(op != 'q' && op != 'w' && op != 'e' && op != 'r' && op != 't') {
- printf("\t\t\tMenu\n\n");
- printf("q - Inserir uma nota.\n");
- printf("w - Apagar uma nota.\n");
- printf("e - Media das notas e o numero de modulos em atraso.\n");
- printf("r - Media por disciplina.\n\n");
- printf("t - Sair\n");
- fflush(stdin);
- op = getch(); // Leitura do char controlador do menu.
- system("cls");
- }
- return op; // Retorno do char "op" para a Main().
- }
- tagAlunos PreencherStructAlunos(tagAlunos Aluno) {
- /* Declaracoes */
- int idx;
- /* Ciclo que roda as Notas para Inicializar */
- for(idx=0; idx < 91; idx++) {
- Aluno.notas[idx].cla = 0;
- Aluno.notas[idx].modulo = -1;
- strcpy(Aluno.notas[idx].sigla, "\0");
- Aluno.notas[idx].data.dia = -1;
- Aluno.notas[idx].data.mes = -1;
- Aluno.notas[idx].data.ano = -1;
- }
- strcpy(Aluno.nome, "\0"); // Inicilizar o nome.
- Aluno.num = -1; // Inicilizar o numero.
- Aluno.qtd = 0; // Inicializar a quantidade de notas.
- return Aluno;
- }
- tagAlunos AskName_and_Num(tagAlunos Aluno) {
- /* Leitura do Nome */
- printf("Nome: ");
- fflush(stdin);
- gets(Aluno.nome);
- system("cls");
- /* Leitura do Numero */
- printf("Numero: ");
- fflush(stdin);
- scanf("%d", &Aluno.num);
- system("cls");
- return Aluno; // Retorno da estructura Aluno.
- }
- void PreencherSiglas(char Siglas[][4]) {
- /* Inicializacao a array bidimensional Siglas[][]. */
- // 11 Disciplinas.
- strcpy(Siglas[0], "PT");
- strcpy(Siglas[1], "MAT");
- strcpy(Siglas[2], "FQ");
- strcpy(Siglas[3], "PSI");
- strcpy(Siglas[4], "AC");
- strcpy(Siglas[5], "RC");
- strcpy(Siglas[6], "EF");
- strcpy(Siglas[7], "SO");
- strcpy(Siglas[8], "AI");
- strcpy(Siglas[9], "ING");
- strcpy(Siglas[10], "TIC");
- }
- /* Funcoes Globais */
- void PAUSA(void) {
- /* Similar ao system("pause"); */
- printf("Clique numa tecla para continuar...");
- fflush(stdin);
- getch();
- }
- int VerificarSiglas(char ctemp[], char siglas[][4]) {
- /* Verificacao das Siglas */
- int temp;
- for(temp=0; temp < 11; temp++) { // Ciclo que corre 12x
- if( !stricmp(ctemp, siglas[temp]) ) // Se a Sigla introduzida for igual a uma das Siglas da array bidimensional, entra no if().
- return temp; // Se a Sigla coincidir com alguma da array bidimensional, entao retorna 1.
- }
- return -1; // Se a sigla nao coincidir com nenhuma, retorna 0.
- }
- void PedirSigla(char sigla[]) {
- /* Funcao que pede uma sigla */
- char sig[4];
- system("cls");
- printf("Sigla: ");
- fflush(stdin);
- gets(sig);
- strcpy(sigla, sig); // Copia a sigla da string temporaria (sig) para a string do parametro (sigla).
- }
- void VerificarModulo(tagAlunos Aluno, char sig[4], int nmod, int Array[]) {
- /* Declaracoes e Inicizalicao*/
- int idx, end;
- end = 0;
- /* Ciclo que compara as 90 notas e verificar se alguma das notas e modulos coincidem com as inseridas. */
- for(idx=0; idx < 90; idx++) {
- if( !stricmp(Aluno.notas[idx].sigla, sig) ) {
- if( nmod != Aluno.notas[idx].modulo )
- continue;
- else {
- end = 1; // Se aquele modulo/sigla ja tiver sido usado, entao "retorna" 1.
- break;
- }
- }
- }
- Array[0] = end; // 1 - Usado; 0 - Nao Usado.
- Array[1] = idx; // Se ja foi usado, contem o valor de idx onde foi encontrada a coincidencia.
- }
- int MaxModulos(int modulo, int indice) {
- /* Declaracao e Inicializacao */
- int controlo;
- controlo = 0;
- /* Cada disciplina tem um numero determinado de modulos,
- por isso, precisamos de algo que retorne o numero de modulos
- existentes em cada disciplina.*/
- switch(indice) {
- case 1: controlo = 12; break;
- case 2: controlo = 10; break;
- case 3: controlo = 8; break;
- case 4: controlo = 19; break;
- case 5: controlo = 5; break;
- case 6: controlo = 8; break;
- case 7: controlo = 16; break;
- case 8: controlo = 5; break;
- case 9: controlo = 6; break;
- case 10: controlo = 9; break;
- case 11: controlo = 3; break;
- }
- return controlo;
- }
- /* Fim de Funcoes Globais */
- /* Inserir Notas */
- tagAlunos InserirNota(tagAlunos Aluno, char Siglas[][4]) {
- /* Declaracoes */
- char ctemp[4], ask;
- int nmod, subidx, classific, ControloMaxMod, ControloMods;
- int data[3], Controladorqtd[2];
- /* Controladorqtd[0], varia entre 1 e 0, que controla se um modulo está disponivel ou não.
- Controladorqtd[1], varia entre 0 e 90, que contem o indice da nota onde se encontra o modulo. */
- /* Inicializacoes */
- nmod = subidx = classific = ControloMods = ControloMaxMod = 1;
- ask = 'y';
- /* Ciclo Principal */
- while(TRUE) {
- PedirSigla(ctemp); // Leitura temporaria da sigla introduzida.
- /* Comparacao da sigla introduzida com as siglas possiveis. */
- ControloMods = VerificarSiglas(ctemp, Siglas)+1;
- system("cls");
- if(ControloMods != -1) { // Se a sigla introduzida coincidir com alguma das possiveis opcoes, avança.
- /* Leitura do Numero do Modulo */
- printf("Numero do Modulo: ");
- scanf("%d", &nmod);
- /* Obtencao do numero max de modulos que a disciplina tem */
- ControloMaxMod = MaxModulos(nmod, ControloMods);
- if( nmod > 0 && nmod <= ControloMaxMod ) { // Se o numero do modulo estiver em ordem, avançar.
- /* Verifica se o modulo introduzido esta disponivel atraves de Controladorqtd[0] */
- /* Controladorqtd[1] serve para indicar o indice que está disponivel. */
- VerificarModulo(Aluno, ctemp, nmod, Controladorqtd);
- if( Controladorqtd[0] ) { // Se o Modulo ja tiver sido preenchido, avançar.
- while(ask != 'y' || ask != 'n' ) {
- system("cls");
- printf("Nota ja existente, pretende substituir? y/n");
- fflush(stdin);
- ask = getch();
- system("cls");
- if ( ask == 'n' ) {
- return Aluno; // Acabar de inserir a nota, sem inserir uma nota.
- }
- if( ask == 'y' ) {
- /* Continuar a substituir a nota */
- subidx = Controladorqtd[1]; // subidx e o indice para substituir, ou introduzir uma nota.
- break;
- }
- }
- }
- else {
- /* Se o modulo estiver disponivel, entao o indice para introduzir a nota e igual a quantidade
- de notas ja existente (nao e Aluno.qtd+1, porque começa no 0)*/
- subidx = Aluno.qtd;
- }
- while(TRUE) {
- /* Introducao da classificacao */
- system("cls");
- printf("Classificacao: ");
- scanf("%d", &classific);
- /* Verificar se a classificacao esta entre 0 e 20 */
- if( classific < 0 || classific > 20 ) {
- /* Se a classificao nao estiver correcta entao, e perguntado
- ao utilizador se quer acabar o programa. */
- while(ask != 'y' && ask != 'n') {
- system("cls");
- printf("Tem de ser entre 0 e 20!!\n\n");
- PAUSA();
- system("cls");
- printf("Pretende sair? y/n");
- fflush(stdin);
- ask = getch();
- }
- if(ask == 'y')
- return Aluno; // Acabar de inserir a nota, sem inserir uma nota.
- }
- else
- break;
- }
- /* Insercao das variaveis temporarias nas variaveis da estrutura. */
- InserirData_Lanc(data); // Inserir a data de lancamento da nota.
- strcpy(Aluno.notas[subidx].sigla, ctemp);
- Aluno.notas[subidx].modulo = nmod;
- Aluno.notas[subidx].cla = classific;
- Aluno.notas[subidx].data.dia = data[0];
- Aluno.notas[subidx].data.mes = data[1];
- Aluno.notas[subidx].data.ano = data[2];
- /* Fim de insercao */
- break;
- }
- else {
- /* Se o numero do modulo introduzido nao estiver correcto entao,
- aparece uma mensagem de erro e repete o ciclo de introducao
- de uma nota. */
- system("cls");
- printf("\n ERRO: tem de ser entre 0 e %d\n\n", ControloMaxMod);
- PAUSA();
- }
- }
- }
- system("cls");
- return Aluno;
- }
- void InserirData_Lanc(int datas[3]) {
- /* Funcao para introduzir a data de lancamento de uma nota. */
- /* Declaracoes e Inicializacoes */
- int diatemp, mestemp, anotemp, dia_do_mes;
- diatemp = mestemp = anotemp = 0;
- /* Corre um ciclo, enquanto as datas introduzidas nao estiverem correctas */
- while(TRUE) {
- system("cls");
- printf("Dia: ");
- scanf("%d", &diatemp);
- printf("Mes: ");
- scanf("%d", &mestemp);
- printf("Ano: ");
- scanf("%d", &anotemp);
- dia_do_mes = Dias_do_Mes(mestemp, anotemp); // Quantos dias tem o mes introduzido.
- system("cls");
- /* Verifica se o dia introduzio, esta em ordem com o dia maximo possivel. */
- if( VerificarDia(diatemp, dia_do_mes ) ) {
- /* Verifica se a data introduzida, repeita com a regra dos 7 dias, isto e,
- se a data vai ate a um maximo de 7 dias antes da data actual. */
- if( Verificar_7Dias(diatemp, mestemp, anotemp) ) {
- /* Insercao da data temporaria na data da nota situada na estrutura. */
- datas[0] = diatemp;
- datas[1] = mestemp;
- datas[2] = anotemp;
- break;
- }
- else {
- /* Se a data nao respeitar a regra dos 7 dias, aparece uma mensagem de erro
- e pede ao utilizador para introduzir a data novamente. */
- printf("No maximo tem de ser 7 dias !!\n\n");
- PAUSA();
- }
- }
- else {
- /* Se o dia nao estiver entre 1 e o dia maximo do mes,
- aparece uma mensagem de erro e volta a pedir a insercao
- da data. */
- printf("ERRO!!\n\n");
- PAUSA();
- }
- }
- system("cls");
- }
- int Dias_do_Mes(int mes, int ano) {
- /* Esta funcao serve para retornar a quantidade de dias que um determinado mes tem. */
- int dias;
- if( mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12 ) // Meses 31.
- dias = 31;
- else if( mes == 2 ) { // Fevereiro (28 ou 29).
- if( ( (!(ano % 4)) && (ano % 100) ) || (!(ano % 400)) ) // Ano bissexto ou nao.
- dias = 29; // Bissexto, Fevereiro 29.
- else
- dias = 28; // Nao Bissexto, Fevereiro 28.
- }
- else // Restantes meses, 30.
- dias = 30;
- return dias;
- }
- int VerificarDia(int dia, int Dia_do_mes) {
- /* Retorna se o dia esta dentro dos parametros desejaveis. */
- return (dia > 0 && dia < Dia_do_mes+1) ? 1 : 0; // 1-TRUE, 0-FALSE.
- }
- int Verificar_7Dias(int dia, int mes, int ano) {
- /* Funcao para verificar se a data respeita a regra dos 7 dias, isto e,
- se a data vai ate a um maximo de 7 dias antes da data actual. */
- /* Declaracoes e Inicializacoes */
- int count, diatemp, mestemp, anotemp, end;
- time_t ltime;
- struct tm *today;
- time(<ime);
- today = localtime(<ime);
- diatemp = today->tm_mday;
- mestemp = today->tm_mon+1;
- anotemp = today->tm_year+1900;
- end = 0;
- /* Ciclo que corre 7 vezes (7dias).
- Vai decrementando o dia, como consequencia o mes e tambem o ano
- se necessario, e compara se a data introduzida coincide com alguma
- das 7 opcoes que o ciclo da. */
- for(count = 0; count < 7; count++) {
- /* Se a data coincidir com alguma das que o ciclo deu. */
- if( diatemp == dia && mestemp == mes && anotemp == ano ) {
- end = 1; // end = 1, significa que a data respeita a regra dos 7 dias.
- break;
- }
- /* Se o dia nao coincidir com nenhum e entao decrementado. */
- if(diatemp != 0 )
- diatemp--;
- else {
- /* Se o dia chegar a 0, entao o mes e decrementado e o
- dia e inicializado com o numero de dias maximo do mes. */
- diatemp = Dias_do_Mes(mestemp, anotemp);
- if(mestemp != 0 )
- mestemp--; // Decrementacao do mes.
- else {
- /* Se o mes chegar a 0, entao o ano e decrementado e o
- mes e inicializado com o maximo numero de meses existente. */
- anotemp--;
- mestemp = 12;
- }
- }
- }
- return end;
- }
- /* Fim de Inserir Notas */
- /* Apagar Notas */
- tagAlunos ApagarNota(tagAlunos Aluno,char Siglas[][4]) {
- /* Funcao para apagar uma nota. */
- /* Declaracoes e Inicializacoes */
- int idx, ControloMods, controlqtd[2], nmod, ControloMaxMod;
- char sig[4];
- ControloMods = idx = nmod = ControloMaxMod = 0;
- /* Pede uma sigla e o ciclo nao acaba enquanto a sigla
- nao estiver correctamente introduzida. */
- while( ControloMods != -1) {
- PedirSigla(sig);
- ControloMods = VerificarSiglas(sig, Siglas)+1;
- }
- while( TRUE ) {
- system("cls");
- /* Introducao do numero do modulo. */
- printf("Numero do Modulo: ");
- scanf("%d", &nmod);
- /* Verificacao do numero maximo de modulos que cada disciplina tem. */
- ControloMaxMod = MaxModulos(nmod, ControloMods);
- if(nmod > 0 && nmod <= ControloMaxMod) {
- /* Funcao para obter o indice onde esta situado a nota que se quer apagar,
- o indice fica situado em controlqtd[1]. */
- /* controlqtd[0], serve para verificar se a nota existe ou nao, sendo que,
- 1 significa que existe e 0 que nao existe. */
- VerificarModulo(Aluno, sig, nmod, controlqtd);
- if( controlqtd[0] == 1 ) {
- /* Funcao para copiar as notas da direita para a esquerda, isto e,
- apagar uma nota. */
- Aluno = ApagarN(Aluno, controlqtd[1]);
- break;
- }
- }
- else {
- /* Se o modulo nao estiver entre 0 e o numero max de modulos, aparece
- uma mensagem de erro e reinicia o ciclo. */
- system("cls");
- printf("Tem de ser entre 0 e %d!!!\n\n", ControloMaxMod);
- PAUSA();
- continue;
- }
- }
- return Aluno;
- }
- tagAlunos ApagarN(tagAlunos Aluno, int startidx) {
- /* Funcao para copiar as notas da direita para a esquerda
- na array. */
- int idx;
- /* Copiar as notas da direita para a esquerda enquanto
- nao for encontrado um char '\0' no primeiro indice da sigla. */
- for(idx = startidx; Aluno.notas[idx].sigla[0] != '\0' ; idx++) {
- strcpy(Aluno.notas[idx].sigla, Aluno.notas[idx+1].sigla);
- Aluno.notas[idx].modulo = Aluno.notas[idx+1].modulo;
- Aluno.notas[idx].cla = Aluno.notas[idx+1].cla;
- Aluno.notas[idx].data.dia = Aluno.notas[idx+1].data.dia;
- Aluno.notas[idx].data.mes = Aluno.notas[idx+1].data.mes;
- Aluno.notas[idx].data.ano = Aluno.notas[idx+1].data.ano;
- }
- return Aluno;
- }
- /* Media das Notas Positivas e Numero de Modulos em Atraso */
- float MediaPos_e_ModAtraso(tagAlunos Aluno, char Siglas[][4], int control[]) {
- /* Funcao para obter e escrever a media do aluno. */
- /* Declaracoes e Inicializacoes */
- int idx, positivastotais;
- float mediatemp;
- mediatemp = 0.0;
- positivastotais = 0;
- control[0] = 0; // Modulos Positivos.
- control[1] = 0; // Modulos Negativos.
- /* Se nao houver notas */
- if( Aluno.qtd == 0 )
- printf("Nao existem Notas!!");
- system("cls");
- /* Soma a media de cada uma das 12 disciplinas. */
- for(idx=0; idx < 11 ;idx++) {
- mediatemp += MediaDisciplina(Aluno, Siglas[idx], control);
- positivastotais += control[0]; // Incrementacao de positivas para divisao futura.
- }
- /* Como nao se pode dividir por 0 */
- if( positivastotais == 0 )
- return 0;
- /* Se as positivas forem diferente de 0 */
- return (mediatemp / positivastotais);
- }
- int MediaDisciplina(tagAlunos Aluno, char Sigla[4], int control[]) {
- /* Funcao para calcular a media de uma disciplina. */
- /* Declaracoes e Iniciaizacoes */
- int idx, temp, positivas, negativas;
- temp = positivas = negativas = 0;
- /* Ciclo que soma as classificacoes da disciplina. */
- for(idx=0; idx < 90 ; idx++) {
- /* Verifica se a sigla da disciplina introduzida é igual
- a sigla da nota cujo indice e idx.*/
- if( !stricmp(Aluno.notas[idx].sigla,Sigla) ) {
- if( Aluno.notas[idx].cla >= 10 ) {
- /* Se a nota for positiva, entao, temp soma a
- classificacao a si mesma. */
- temp += Aluno.notas[idx].cla;
- positivas++; // Incrementacao das notas positivas.
- }
- else {
- /* Se a nota for negativas, entao a variavel de controlo
- de negativas e incrementada. */
- negativas++;
- }
- }
- if( Aluno.notas[idx].sigla[0] == '\0' ) {
- /* Se o primeiro indice da sigla for '\0' entao significa que
- o resto das notas no array, estao vazias. */
- break;
- }
- }
- control[0] = positivas;
- control[1] = negativas;
- /* Como nao se pode dividir por 0 */
- if( positivas == 0 )
- return 0;
- /* Se as positivas forem diferente de 0, entao retorna a soma das
- classificacoes pelas positivas. */
- return temp / positivas;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement