Embarcadero / Dev-Cpp

A fast, portable, simple, and free C/C++ IDE
https://www.embarcadero.com/free-tools/dev-cpp
GNU General Public License v2.0
2.6k stars 280 forks source link

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! #231

Open Magnon99 opened 2 years ago

Magnon99 commented 2 years ago

include

define DIM 4

include

include

include

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);

}

huynhit24 commented 2 years ago

I think this exercise is not too difficult for you!