Ir ao conteúdo

C Dificuldade Exercício de Matrizes


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Leia uma matriz 5 x 10 que se refere respostas de 10 questões de múltipla escolha, referentes a 5 alunos.

Leia também um vetor de 10 posições contendo o gabarito de respostas que podem ser a, b, c ou d. a.

Seu programa devera comparar as respostas de cada candidato com o gabarito e emitir um vetor denominado resultado, contendo a pontuação correspondente a cada aluno.

 

Está gerando valores aleatórios como correto.

#include <stdio.h>
#include <stdlib.h>
#define L 5
#define C 10
#define T 10

int main()
{
    char matriz[L][C];
    char vetor[T] = {'a', 'a', 'b', 'd', 'c', 'b', 'd', 'a', 'c', 'b'};
    int i = 0, j = 0, correta = 0;

    for(i = 0; i < L; i++){
    for(j = 0; j < C; j++){
    printf("Digite Resposta [%d] do Aluno [%d]: ", j+1, i+1);
    scanf(" %c", &matriz[i][j]);
    }
    }
    printf("\n");
    for(i = 0; i < L; i++){
    for(j = 0; j < C; j++){
    if(matriz[i][j] == vetor[i]){
    correta++;
    }
    }
    printf("ALUNO [%d] Gabaritou [%d] Questoes \n", i+1, correta);
    }
    return 0;
}

 

  • Obrigado 2
  • Solução
Postado

@Pedrockz    na comparação você colocou a Letra   i   ,  e creio que seria  o J   mesmo  ,  pois é a mesma posição com a mesma posição que comparar , e digitar cinqùenta respostas é Demais mesmo ! ,  creio Que sua ideia seja boa mesmo , use geração de valores aleatórios ,  com a função rand , e para diminuir a quantidade de linhas você pode deletar algumas chaves desnecessárias , e então seu código com algumas modificações poderia ser assim  :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(time(NULL));
    char matriz[5][10];
    char gabarito[10] = {'a', 'a', 'b', 'd', 'c', 'b', 'd', 'a', 'c', 'b'};
    int resultado[5] = {0};
    int i = 0, j = 0, correta = 0;

    for(i = 0; i < L; i++)
        for(j = 0; j < C; j++){
            printf("Digite Resposta [%3d ] do Aluno [%3d ]: \n", j+1, i+1);
            //scanf(" %c", &matriz[i][j]);
            matriz[i][j] = (char)rand() % 4 + 97;
        }
    printf("\n");
    for(i = 0; i < L; i++){
        for(j = 0; j < C; j++)
            if(matriz[i][j] == gabarito[j])  // mesma posição
                resultado[i]++;
        printf("Resultado Do ALUNO [%3d ] Foi [%3d ] Pontos\n", i+1, resultado[i]);
    }
    return 32768;
}

 

  • Obrigado 2

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...