Ir para conteúdo
Fórum Script Brasil
  • 0

Problema no resultado do programa


paulafabiana7

Pergunta

Galera eu estou com dificuldades em criar um program que pede para comprar uma matriz e um vetor, eu consegui fazer a matriz mais não sei como comparar 

/* Faça um programa realize a leitura de uma matriz 5x8 do tpo char. Cada linha da matriz
representa as respostas de um aluno em uma prova com 8 exercícios de múltpla escolha (‘A’, ‘B’,
‘C’, ‘D’ ou ‘E’, valide as entradas para que seja digitado apenas essas letras). Em seguida, realize a
leitura de um vetor GABARITO, de 8 posições, que corresponde as respostas ofciais da prova. Ao
fnal, preencha um vetor ACERTOS, de tamanho 5, que mostre a quantdade de acertos que cada
aluno teve, comparando o vetor gabarito com a matriz de respostas dos alunos

*/

 

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>


main(){
    setlocale(LC_ALL, "portuguese");
  char notas[5][8];
  int linha, coluna;
    char vetor[8] = {B, C, A, D, D, B, A, A };
    printf("Digite a alternativa escolhida A, B, C, D, ou E\n\n");

        for (linha=0; linha < 5;linha++){
        for (coluna=0; coluna < 8; coluna++){
         printf("Digite a alternativa %d° questão do %d° aluno: ", coluna+1, linha+1);
         scanf(" %c",&notas[linha][coluna]);
        }

        }

        for (linha=0; linha < 5;linha++){
        for (coluna=0; coluna < 8; coluna++){
         printf("%c ", notas[linha][coluna]);
        }
        printf("\n\N");
    }

  printf("\n\n");
  system("pause");
}

Editado por paulafabiana7
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá!

O seu vetor é do tipo char. Vetor deste tipo recebe caracteres únicos. Estes caracteres são representados por aspas simples. No seu caso o compilador está entendendo que você está associado variáveis A, B, C e D. Para corrigir este problema, use aspas simples em cada caractere que roda.

Recomendo no final do programa utilizar o return ou usar a função main como void.

Obs.: O erro que informou foi apresentado pelo compilador. É importante sempre analisar os erros que o compilador retorna.

Forte abraço e bons estudos!

Link para o comentário
Compartilhar em outros sites

  • 0

Como o contribuidor já explicou a teoria, não vou repetir, apenas mostrar a prática.

/* Faça um programa realize a leitura de uma matriz 5x8 do tpo char. Cada linha da matriz
representa as respostas de um aluno em uma prova com 8 exercícios de múltpla escolha (‘A’, ‘B’,
‘C’, ‘D’ ou ‘E’, valide as entradas para que seja digitado apenas essas letras). Em seguida, realize a
leitura de um vetor GABARITO, de 8 posições, que corresponde as respostas ofciais da prova. Ao
fnal, preencha um vetor ACERTOS, de tamanho 5, que mostre a quantdade de acertos que cada
aluno teve, comparando o vetor gabarito com a matriz de respostas dos alunos
*/
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <windows.h>

main(){
	setlocale(LC_ALL, "portuguese");
  	char notas[5][8];
  	int linha, coluna;
    char vetor[8] = {'A', 'B', 'A', 'D', 'D', 'B', 'A', 'A' }; //imagino que isso seja o gabarito
    printf("Digite a alternativa escolhida A, B, C, D, ou E\n\n");
    
        for (linha=0; linha < 5;linha++){
        	for (coluna=0; coluna < 8; coluna++){
         		printf("Digite a alternativa %d° questão do %d° aluno: ", coluna+1, linha+1);
         		scanf(" %c",&notas[linha][coluna]);
        	}

        }
        printf("\tGABARITO");
        for (coluna=0; coluna < 8; coluna++){
        	printf("%c ", vetor[coluna]);
        }
        
		int acertos=0;
        for (linha=0; linha < 5;linha++){
        	acertos=0;
        	for (coluna=0; coluna < 8; coluna++){
        		if(notas[linha][coluna]==vetor[coluna]){
        			//ele acertou
        			acertos++;
        			printf("%c ", notas[linha][coluna]);
				}else{
					//ele errou
					printf("X ");
				}
         
        	}
        	printf("\t:%d\n", acertos);
    	}

	//Veficando os acertos.
  	printf("\n\n");
  	system("pause");
}

Nesse exemplo mostra a verificação do gabarito, mas não válida a entrada

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigada rickayron e Exata0mente consegui valida 

 

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define linha 5
#define coluna 8
int main(){
    setlocale(LC_ALL, "Portuguese");
    //matriz 5x8 char; linhas são alunos, colunas são respostas a itens de A a E;
    //vetor gabarito, 8 posições, que deve verificar a matriz de respostas
    //vetor de 5 posições com a quantidade de acertos de cada aluno

    char respostas[linha][coluna];
    char gabarito[coluna];
    int acertos[linha];
    int i, j;

    for(i=0; i<linha; i++){
        printf("Aluno %d\n", i+1);
        for(j=0; j<coluna; j++){
            printf("Questão %d\n", j+1);
            scanf(" %c", &respostas[j]);
            if(respostas[j] != 'A' && respostas[j] != 'B'){
                if(respostas[j] != 'C' && respostas[j] != 'D'){
                    if(respostas[j] != 'E'){
                        printf("Resposta inválida, tente novamente.\n");
                        j = j-1;
                    }
                }
            }
        }
    }

    printf("Digite o gabarito: ");

    for(j=0; j<coluna; j++){
        printf("Questão %d\n", j+1);
        scanf(" %c", &gabarito[j]);
    }

    for(i=0; i<linha; i++){
        acertos=0;
    }

    for(i=0; i<linha; i++){
        for(j=0; j<coluna; j++){
            if(respostas[j] == gabarito[j]){
                acertos = acertos + 1;
            }
        }
    }

    printf("\nResultados: (Última coluna são os acertos de cada aluno)\n");
    for(i=0; i<linha; i++){
        printf("\n");
        for (j=0; j<coluna; j++){
            printf("%8c", respostas[j]);
        }
        printf("%4d", acertos);
        printf("\n");
    }
    printf("Gabarito: \n");
    for (j=0; j<coluna; j++){
        printf("%8c", gabarito[j]);
    }
    printf("\n");

    system("pause");
}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...