easi25
(usa Outra)
Enviado em 26/11/2016 - 21:17h
Boa noite amigos, eu quero uma ajuda de vcs para eu resolver uma questão em um programa, que está me dando muita dor de cabeça, o programa não está calculando a media da turma... por favor me ajudem, sou novato na programação...
O programa é o seguinte... desculpe qualquer grosseria no programa é a primeira vez ...
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
#define cad 100
char nomedoaluno[cad][90];
int matricula[cad];
float nota1[cad];
float nota2[cad];
float nota3[cad];
float nota4[cad];
float notas[cad];
int op;
float media[cad];
float mediasala = 0;
void cadastro (void);
void lista (void);
int main (void) {
int num;
{
printf("\n\n\t\t\tGERENCIAMENTO DE NOTAS ESCOLARES\n");
printf("\t\t\t********************************\n");
printf(" Escolha a apcao\n");
printf("________________________\n");
printf("|(1)-Para adicionar dados|\n");
printf("|(2)-Para mostrar dados |\n");
printf("\n|(0)-Sair\n");
scanf("%d",&num);
switch(num)
{
case 1: cadastro();
break;
case 2: lista();
break;
case 0: exit(0);
default:
printf("\n ** TENTE NOVAMENTE **");
main();
break;
}
}
getchar();
}
void lista (void) {
int i=0;
float x=0;
static int linha;
for (i = 0; i < 100; i++) {
if (matricula[i] > 0) {
printf("\n___________________________________________________________\n");
printf("\n Nome do aluno: %s\n", nomedoaluno[i]);
printf(" Numero de matricula: %d\n", matricula[i]);
printf(" Nota 1: %2.1f\n", nota1[i]);
printf(" Nota 2: %2.1f\n", nota2[i]);
printf(" Nota 3: %2.1f\n", nota3[i]);
printf(" Nota 4: %2.1f\n", nota4[i]);
printf("\n A media ponderada do aluno e: %2.1f", media[i]);
if (media[i] < 5) {
printf("\n ** Aluno reprovado **");
} else if (media[i] >= 5) {
printf("\n ** Aluno aprovado **");
}
printf("\n___________________________________________________________\n\n");
} else {
break;
}
}
{
mediasala=mediasala / media[i] ;
printf ("\n A media ponderada da classe e: %2.1f", mediasala);
}
printf("\n\t\t\t*************************************\n");
printf("\t\t\t Digite '1' Menu principal \n");
printf("\n\t\t\t Digite '0' exit \n");
scanf ("%d", &op);
linha++;
switch(op)
{
case 1:cadastro();
break;
case 0:exit(0);
break;
default:
printf("\n ** TENTE NOVAMENTE **");
main();
break;
}
}
void cadastro (void) {
static int linha;
int i, menor, j = 0;
for (i = 0; i < 100; i++)
do {
printf("\n___________________________________________________________\n");
fflush(stdin);
printf (" Digite o nome do aluno: ");
gets (nomedoaluno[linha]);
printf (" Digite a matricula: ");
scanf ("%d", &matricula[linha]);
printf (" Digite a nota 1 do aluno: ");
scanf ("%f", ¬a1[linha]);
printf (" Digite a nota 2 do aluno: ");
scanf ("%f", ¬a2[linha]);
printf (" Digite a nota 3 do aluno: ");
scanf ("%f", ¬a3[linha]);
printf (" Digite a nota 4 do aluno: ");
scanf ("%f", ¬a4[linha]);
menor = nota1[linha]; j = 1;
if (nota2[linha] < menor) { menor = nota2[linha]; j = 2; }
if (nota3[linha] < menor) { menor = nota3[linha]; j = 3; }
if (nota4[linha] < menor) { menor = nota4[linha]; j = 4; }
printf("\n Menor nota: %d\n", menor);
printf("\n Digite a nota SUBSTITUTIVA: ");
scanf("%f", ¬as);
switch(j) {
case 1: nota1[linha] = notas[i]; break;
case 2: nota2[linha] = notas[i]; break;
case 3: nota3[linha] = notas[i]; break;
case 4: nota4[linha] = notas[i]; break;
default: exit(0);
}
media[linha] =
((nota1[linha] * 1) +
(nota2[linha] * 2) +
(nota3[linha] * 3) +
(nota4[linha] * 4)) / (10);
mediasala=(mediasala + media[i]);
printf("\n\n\t\t\t*************************************\n");
printf("\t\t\t Digite '1' para cadastrar novo aluno \n");
printf("\n\t\t\t\t Digite '0' para menu \n");
scanf ("%d", &op);
linha++;
switch(op)
{
case 1:cadastro();
break;
case 0:main();
break;
default:
printf("\n TENTE NOVAMENTE");
main();
break;
}
} while (op == 1);
}