Ir ao conteúdo

Posts recomendados

Postado

Ola, boa tarde. Então, essa questão pede para que eu cadastre as notas de 5 alunos em 4 bimestres, N1 e N2 em cada bimestre. Estou um tanto insegura quanto o que foi feito na opção 2. Alem disso, minhas opções 4 e 5 (o exigido em cada uma encontra-se nos comentários)  não funcionam. Fiz algumas mudanças nessas opções e nada. Alguém poderia me ajudar, por favor? Desde já, agradeço.

 

#include <stdio.h>
int main ( ) {
    int matriz[5][8];
    int linha = 0;
    int coluna = 0;
    int opc = 0;
    
    do {
        printf("Digite a opcao:");
        scanf("%d", &opc);
    // cadastro
    if (opc == 1) {
        for (linha = 0; linha < 5; linha++) {
            for (coluna = 0; coluna < 8; coluna++) {
                printf("Aluno [%d] Nota [%d]:", linha, coluna);
                scanf("%d", &matriz[linha][coluna]);
            }
        }
    }
    // media da turma
    if (opc == 2) {
        int soma = 0;
        for (linha = 0; linha < 5; linha++) {
            for (coluna = 0; coluna < 8; coluna++) {
        soma = soma + matriz[linha][coluna];
        }
        }
        printf("A media da turma eh: %d\n",(soma)/5);
    }
    // media do 3 bimestre de todos os alunos
    if (opc == 3) {
        int nota1bim3 = 0, nota2bim3 = 0;
        for (linha = 0; linha < 5; linha++) {
            nota1bim3 = nota1bim3 + matriz[linha][4];
            nota2bim3 = nota2bim3 + matriz[linha][5];
        }
        printf("A media do bim 3 eh: %d\n", (nota1bim3 + nota2bim3)/5);
    }
    // menor nota1 do 1º e 2º bimestre 
    if (opc == 4) {
        int menor = 0;
        for (linha = 0; linha < 5; linha++) {
            if (matriz[linha][0] < menor) {
                menor = matriz[linha][0];
            }
            if (matriz[linha][1] < menor) {
                menor = matriz[linha][1];
            }
        }
        printf("A menor nota 1 do bim 1 eh: %d\n", menor, matriz[linha][0]);
        printf("A menor nota 1 do bim 2 eh: %d\n", menor, matriz[linha][1]);    
    }
    // maior nota2 do 2ª e 4 º bimestre
    if (opc == 5) {
        int maior = 0;
        for (linha = 0; linha < 5; linha++) {
            if (matriz[linha][3] > maior) {
                maior = matriz[linha][3];
            }
            if (matriz[linha][7] > maior) {
                maior = matriz[linha][7];
            }
        }
        printf("A maior nota 2 do bim 2 eh: %d\n", maior, matriz[linha][3]);
        printf("A maior nota 2 do bim 4 eh: %d\n", maior, matriz[linha][7]);
    }
    }
    while (opc != 0);
}

  • Obrigado 1
Postado

@Vitória Maria     seu código está bom , e para fazer os cálculo creio que você poderia usar uma matriz com 3 dimensões ,  e seu código com algumas modificações na opção 1 e 2  poderia ser assim  :

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
#define H GetStdHandle(STD_OUTPUT_HANDLE)
void textcolor_2(int l, int f){SetConsoleTextAttribute(H,l+(f<<4));}
int main(){
    int matriz[5][4][2];    /* 5 alunos 4 bimestre duas notas */
    int linha,coluna,aluno,opc=0,flag;
    char num;
    srand(time(NULL));
    do{
        textcolor_2(14,0);
        printf(" 1 - preencher matriz\n");
        printf(" 2 - media da turma\n");
        printf(" 3 - media do bimestre 3\n");
        printf(" 4 - menor media bimestres\n");
        printf(" 5 - maior nota bimestres\n");
        printf(" 0 - sair do programa\n");
        printf("     Digite a opcao : ");
        textcolor_2(11,0);
        scanf("%d",&opc);
        // cadastro
        if(opc == 1){
            for(aluno=0; aluno<5; aluno++)
            for(linha=0; linha<4; linha++){
                for(coluna=0; coluna<2; coluna++){
                    matriz[aluno][linha][coluna] = rand()%11;/* gerar números aleatorios */
                    // para inserir números manualmente ,
                    // use esse bloco comentado e delete a linha aqui de cima
/*                  flag = 1;
                    do{
                        printf("Aluno [%d] bimestre [%d] Nota [%d] : ",
                                aluno+1,linha+1,coluna+1);*/
                        /*fflush(stdin);
                        scanf("%c",&num);
                        if(isdigit(num)){
                            matriz[aluno][linha][coluna] = int(num)-48;
                            printf("%d\n",matriz[aluno][linha][coluna]);
                            flag = 0;
                        }
                    }while( flag );           */
                }
            }
            printf("\n\n");
        }
        // media da turma
        if(opc == 2){
            float mAb,mAt,soma=0;
            for(aluno=0; aluno<5; aluno++){
                mAt=0;
                for(linha=0; linha<4; linha++){
                    mAb=0;
                    for(coluna=0; coluna<2; coluna++){
                        mAb+=(float)matriz[aluno][linha][coluna];
                    }
                    mAt+=mAb/2;
                }
                soma+=mAt/4;
            }
            textcolor_2(10,12);
            printf("\n  A media da turma %c: %.2f  \n\n",130,soma/5);
        }
        // media do 3 bimestre de todos os alunos
        if(opc == 3){
            int nota1bim3 = 0, nota2bim3 = 0;
            for(aluno=0; aluno<5; aluno++)
            for(linha = 0; linha < 5; linha++){
                nota1bim3 = nota1bim3 + matriz[aluno][linha][4];
                nota2bim3 = nota2bim3 + matriz[aluno][linha][5];
            }
            printf("A media do bim 3 eh: %d\n", (nota1bim3 + nota2bim3)/5);
        }
        // menor nota1 do 1º e 2º bimestre
        if(opc == 4){
            int menor = 0;
            for(aluno=0; aluno<5; aluno++)
            for(linha = 0; linha < 5; linha++){
                if(matriz[aluno][linha][0] < menor){
                    menor = matriz[aluno][linha][0];
                }
                if(matriz[aluno][linha][1] < menor){
                    menor = matriz[aluno][linha][1];
                }
            }
            printf("A menor nota 1 do bim 1 eh: %d\n", menor, matriz[aluno][linha][0]);
            printf("A menor nota 1 do bim 2 eh: %d\n", menor, matriz[aluno][linha][1]);
        }
        // maior nota2 do 2ª e 4 º bimestre
        if(opc == 5){
            int maior = 0;
            for(aluno=0; aluno<5; aluno++)
            for(linha = 0; linha < 5; linha++){
                if(matriz[aluno][linha][3] > maior){
                    maior = matriz[aluno][linha][3];
                }
                if(matriz[aluno][linha][7] > maior){
                    maior = matriz[aluno][linha][7];
                }
            }
            printf("A maior nota 2 do bim 2 eh: %d\n", maior, matriz[aluno][linha][3]);
            printf("A maior nota 2 do bim 4 eh: %d\n", maior, matriz[aluno][linha][7]);
        }
    }while( opc != 0 );
    return 0;
}

as outras opções precisa modificar também  .

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!