Dev-Cpp icon indicating copy to clipboard operation
Dev-Cpp copied to clipboard

Olá pessoal, alguém consegue arrumar esse código pra mim, pois sempre que lanço as nota e o nome dos alunos eu precisava que ele mostrasse a média e se o aluno reprovou ou não, só que não consigo mostrar a média e também ele não carrega junto a nota de cálculo ficando zerado e dizendo que o aluno foi reprovado. Se alguém souber e poder colaborar, agradeço!

Open Magnon99 opened this issue 3 years ago • 1 comments
trafficstars

#include <stdio.h> #define DIM 4 #include<stdio.h> #include<stdlib.h> #include<locale.h>

void cadastra_nome(char nomes[][40]){ int i = 0; do{ printf("digite o nome do aluno:"); scanf("%s", nomes[i]); i++; system("cls"); }while(i<DIM); }

void cadastra_notas(float nota_presenca_mat[][DIM],float nota_presenca[][DIM], char nomes[][40]) { int i,j,k; for(i=1 ; i<=DIM ; i++) { // notas e preseça do aluno em calculo printf("\nCalculo aluno(a) %s:\n\n",nomes[i-1]); for(j=1 ; j<=3 ; j++) // As tres primeiras colunas da matriz são as notas a 4 a presença { do { printf("Nota %d:",j); scanf("%f",&nota_presenca_mat[i-1][j-1]);

		if(nota_presenca_mat[i-1][j-1]<0 || nota_presenca_mat[i-1][j-1]>10)
		{
			printf("\n\nNota invalida, Digite um valor entre 0 a 10!\n");
		}
		
		}while(nota_presenca_mat[i-1][j-1]<0 || nota_presenca_mat[i-1][j-1]>10);
		
	}
	for (k=1; k<2; k++)
	 {
		do
		{
		printf("\n\nDigite a presença nas aulas de calculo: ");
		scanf("%f", & nota_presenca[i-1][3-1]);
		
		if(nota_presenca[i-1][3-1]<0 || nota_presenca[i-1][3-1]>100)
		{
			printf("\n\nPresença invalida, digite um valor entre 0 a 100!\n");
		}
		
		}while(nota_presenca[i-1][3-1]<0 || nota_presenca[i-1][3-1]>100);
	 }
		system("cls");
		
		
    // notas e preseça do aluno em computação
    printf("\nComputação aluno(a) %s:\n\n",nomes[i-1]);
	for (j=1; j<=3; j++)
	 {
		do
		{
			printf("Nota %d:",j);
		scanf("%f",& nota_presenca[i-1][j-1]);
		
		if(nota_presenca[i-1][j-1]<0 || nota_presenca[i-1][j-1]>10)
		{
			printf("\n\nNota invalida, Digite um valor entre 0 a 10!\n");
		}
		
		}while(nota_presenca[i-1][j-1]<0 || nota_presenca[i-1][j-1]>10);
	 }
	 for (k=1; k<2; k++)
	 {
		do
		{
		printf("\n\nDigite a presença nas aulas de Programacao: ");
		scanf("%f", &nota_presenca[i-1][3-1]);
		
		if(nota_presenca[i-1][3-1]<0 || nota_presenca[i-1][3-1]>100)
		{
			printf("\n\nPresença invalida, digite um valor entre 0 a 100!\n");
		}
		
		}while(nota_presenca[i-1][3-1]<0 || nota_presenca[i-1][3-1]>100);
	 }
	 system("cls");	
		
}

}

void edita_notas(float nota_presenca_mat[][DIM],float nota_presenca[][DIM], char nomes[][40]) { int i,j,k, opcao_aluno, opcao_nota, opcao_materia; float leitura, novanota; for(i=1 ; i<=DIM ; i++) { for(j=1 ; j<=3; j++) // As tres primeiras colunas da matriz são as notas a 4 a presença { printf("%d Nota de Calculo do Aluno %s : %.2f \n",j, nomes[i-1], nota_presenca_mat[i-1][j-1]); } printf("Presenca do aluno %s na aula de Calculo: %f \n\n ", nomes[i-1], nota_presenca_mat[i-1][3]);

	for(k=1 ; k<=3 ; k++) // As tres primeiras colunas da matriz são as notas a 4 a presença
	{
		printf("%d Nota de Programacao do Aluno %s : %f \n",k, nomes[i-1], nota_presenca[i-1][k-1]);
	}
		printf("Presenca do aluno %s na aula de Programacao: %f \n\n", nomes[i-1], nota_presenca[i-1][3]);
}
	printf("Para editar uma nota selecione o aluno: \n 1. %s \n 2. %s \n 3. %s \n 4. %s \n", nomes[1], nomes[2], nomes[3], nomes[4]);
	scanf("%d", &opcao_aluno);
	switch(opcao_aluno){
		case 1:
			printf("Digite qual materia deseja alterar: \n 1. Calculo \n 2.Programacao \n");
			scanf("%d", &opcao_materia);
				if(opcao_materia == 1){
					printf("\nDigite qual nota deseja alterar. 1 ,2 ,3 ou 4 (Presenca) :  ");
					scanf("%d", &opcao_nota);
					printf("\nDigite a nota: ");
					scanf("%f", &novanota);	
					nota_presenca_mat[opcao_aluno-1][opcao_nota-1] = novanota;
					}
				
				if(opcao_materia == 2){
					printf("\nDigite qual nota deseja alterar. 1 ,2 ,3 ou 4 (Presenca) :  ");
					scanf("%d", &opcao_nota);
					printf("\nDigite a nota: ");
					scanf("%f", &novanota);
					nota_presenca[opcao_aluno- 1][opcao_nota - 1] = novanota;
					}
					system("cls");
			break;
		case 2:
			printf("Digite qual materia deseja alterar: \n 1. Calculo \n 2.Programacao \n");
			scanf("%d", &opcao_materia);
				if(opcao_materia == 1){
					printf("\nDigite qual nota deseja alterar. 1 ,2 ,3 ou 4 (Presenca) :  ");
					scanf("%d", &opcao_nota);
					printf("\nDigite a nota: ");
					scanf("%f", &novanota);	
					nota_presenca_mat[opcao_aluno- 1][opcao_nota - 1] = novanota;
					}
				
				if(opcao_materia == 2){
					printf("\nDigite qual nota deseja alterar. 1 ,2 ,3 ou 4 (Presenca) :  ");
					scanf("%d", &opcao_nota);
					printf("\nDigite a nota: ");
					scanf("%f", &novanota);
					nota_presenca[opcao_aluno- 1][opcao_nota - 1] = novanota;
					}
					system("cls");
			break;
			case 3:
			printf("Digite qual materia deseja alterar: \n 1. Calculo \n 2.Programacao \n");
			scanf("%d", &opcao_materia);
				if(opcao_materia == 1){
					printf("\nDigite qual nota deseja alterar. 1 ,2 ,3 ou 4 (Presenca) :  ");
					scanf("%d", &opcao_nota);
					printf("\nDigite a nota: ");
					scanf("%f", &novanota);	
					nota_presenca_mat[opcao_aluno- 1][opcao_nota - 1] = novanota;
					}
				
				if(opcao_materia == 2){
					printf("\nDigite qual nota deseja alterar. 1 ,2 ,3 ou 4 (Presenca) :  ");
					scanf("%d", &opcao_nota);
					printf("\nDigite a nota: ");
					scanf("%f", &novanota);
					nota_presenca[opcao_aluno- 1][opcao_nota - 1] = novanota;
					}
					system("cls");
			break;
			case 4:
			printf("Digite qual materia deseja alterar: \n 1. Calculo \n 2.Programacao \n");
			scanf("%d", &opcao_materia);
				if(opcao_materia == 1){
					printf("\nDigite qual nota deseja alterar. 1 ,2 ,3 ou 4 (Presenca) :  ");
					scanf("%d", &opcao_nota);
					printf("\nDigite a nota: ");
					scanf("%f", &novanota);	
					nota_presenca_mat[opcao_aluno- 1][opcao_nota - 1] = novanota;
					}
				
				if(opcao_materia == 2){
					printf("\nDigite qual nota deseja alterar. 1 ,2 ,3 ou 4 (Presenca) :  ");
					scanf("%d", &opcao_nota);
					printf("\nDigite a nota: ");
					scanf("%f", &novanota);
					nota_presenca[opcao_aluno- 1][opcao_nota - 1] = novanota;
					}
			break;
			system("cls");
			case 5:
			printf("Digite qual materia deseja alterar: \n 1. Calculo \n 2.Programacao \n");
			scanf("%d", &opcao_materia);
				if(opcao_materia == 1){
					printf("\nDigite qual nota deseja alterar. 1 ,2 ,3 ou 4 (Presenca) :  ");
					scanf("%d", &opcao_nota);
					printf("\nDigite a nota: ");
					scanf("%f", &novanota);	
					nota_presenca_mat[opcao_aluno- 1][opcao_nota - 1] = novanota;
					}
					system("cls");
				
				if(opcao_materia == 2){
					printf("\nDigite qual nota deseja alterar. 1 ,2 ,3 ou 4 (Presenca) :  ");
					scanf("%d", &opcao_nota);
					printf("\nDigite a nota: ");
					scanf("%f", &novanota);
					nota_presenca[opcao_aluno- 1][opcao_nota - 1] = novanota;
					}
					system("cls");
			break;
	}	

}

void resultado(float nota_presenca_mat[][DIM],float nota_presenca_qui[][DIM], char nomes[][40]){ float soma=0, media=0; int i,j,k; for(i=1 ; i<=DIM ; i++) { for(j=1 ; j<=3 ; j++) // As tres primeiras colunas da matriz são as notas a 4 a presença { printf("\n%.2f ",nota_presenca_mat[i-1][j-1] >= 70); soma = nota_presenca_mat[i-1][j-1] + soma; } media = soma / 3; if (media >= 6 && nota_presenca_mat[i-1][3-1] >= 70){ printf("Aluno %s aprovado na materia de Calculo. \n", nomes[i-1]); } else{ printf("Aluno %s reprovado na materia de Calculo. \n", nomes[i-1]); }

	for(k=1 ; k<=3 ; k++) // As tres primeiras colunas da matriz são as notas a 4 a presença
	{
		printf("\n%.2f  ",nota_presenca_qui[i-1][k-1] >= 70);
		soma = nota_presenca_qui[i-1][k-1] + soma;
	}
		media = soma / 3;
		if (media >= 6 && nota_presenca_qui[i-1][3-1] >= 70){
			printf("Aluno %s aprovado na materia de Programacao. \n", nomes[i-1]);
		}
		else{
			printf("Aluno %s reprovado na materia de Programacao. \n", nomes[i-1]);
		}
}

}

int menu(){ int opcao; printf("\n"); printf("\t Menu\n"); printf("\n"); printf("1. Cadastrar nome dos Alunos\n"); printf("2. Cadastrar nota e presença do alunos\n"); printf("3. Gravar em arquivo informações\n"); printf("4. Editar Nota/Presença\n"); printf("5. Mostrar Resultados\n"); printf("6. Sair \n");

printf("\nOpcao: ");
scanf("%d",&opcao);
system("cls");
return opcao;

}

int main(){ int opcao; char nomes[DIM][40]; float nota_presenca_mat[DIM][DIM], nota_presenca[DIM][DIM];

setlocale(LC_ALL,"portuguese");

do{
	opcao = menu();
	switch(opcao){
		case 1:
			cadastra_nome(nomes);
			system("cls");
			break;
			
		case 2:
			cadastra_notas(nota_presenca_mat, nota_presenca, nomes);
			system("cls");
			break;
		case 3:
			
			break;
		case 4:
			edita_notas(nota_presenca_mat, nota_presenca, nomes);
			system("cls");
			break;
		
		case 5:
			resultado(nota_presenca_mat, nota_presenca, nomes);
			
			break;
			
		
		case 6:
			printf("\n Saindo ...");
			break;
		default:
		printf("Opção inválida");
		break;

} }while(opcao != 6);

}

Magnon99 avatar May 20 '22 18:05 Magnon99

I think this exercise is not too difficult for you!

huynhit24 avatar May 30 '22 16:05 huynhit24