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

Problema com For dentro de For


TulioTC

Pergunta

Olá, meu nome é Túlio e tenho 18 anos. Recentemente meu professor de estrutura de dados passou o seguinte exercício: Fazer um programa em C para corrigir provas de múltipla escolha. Postarei o código e explicarei melhor qual o problema:

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

#define questoes 5
#define alunos 4

main()
{
    char vet_gab[questoes];
    char vet_resp[questoes];
    int vet_matricula[alunos];
    int vet_notas[alunos];
    int a,i,j,k,total=0;


    //Obtendo o gabarito da prova
    for(i=0;i<questoes;i++)
    {
        printf("Digite o gabarito da questao %d: ",i+1);
        scanf("%c",&vet_gab[i]);
        fflush(stdin);
    }
    //Imprimindo o gabarito da prova
    printf("\nGabarito da prova:\n");
    for(i=0;i<questoes;i++)
    {
        printf("\nQuestao %d = %c ",i+1,vet_gab[i]);
    }




    //Obtendo as respostas do aluno
    printf("\n\nColetando a Matricula e respostas dos alunos:\n\n");


    for(i=0;i<alunos;i++)
    {
        printf("Matricula do aluno %d: ",i+1);
        scanf("%d",&vet_matricula[i]);
        fflush(stdin);
           for(j=0;j<questoes;j++)
           {
        printf("Digite a resposta da questao %d:",j+1);
        scanf("%c",&vet_resp[j]);
         fflush(stdin);
                for(k=0;k<questoes;k++)
			{
              if(vet_resp[k] == vet_gab[k])
			  {
                total++;
                vet_notas[k]=total;
              }
            }
          }
    }
    
    printf("\nMostrando numero da matricula e a respectiva nota do aluno:\n");

    for(i=0;i<alunos;i++)
	{
    printf("\nMatricula: %1d  Nota: %d",vet_matricula[i],vet_notas[i]);
    }


    getch();
} 

Execução do código:

Sem_t_tulo.jpg

O programa deve calcular e mostrar a nota juntamente com a matricula do aluno.

( A prova tem 5 questões, cada questão vale 1 ponto )

Como usei 3 For's encadeados, tomei o cuidado de mudar as variáveis dos mesmos, neste caso,as variáveis i,j e k. Porém, tanto o armazenamento da matricula quanto o da nota não estão funcionando bem. Para calcular a nota, usei um IF que compara o vetor das respostas com o vetor gabarito e quando for igual, a variável 'total' é incrementada. Após o calculo da nota, ela deverá ser armazenada em um vetor somente para as notas, para isso fiz que: vet_notas[] = total, não tenho certeza se está certo.

Então é isso pessoal, espero que alguém possa me ajudar neste problema.

Desde já, grato!

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

1 resposta a esta questão

Posts Recomendados

  • 0

Saudações,

Não manjo de C, mas a meu ver, quando entra os dados dos alunos e notas, é necessário guardar os dados em uma matriz bidimensional, tipo: vet_resp[j]

Assim, o FOR dos alunos, variável i, vai de 0-3 e o j, que são as respostas das questões, varia de 0-4

Na hora da resposta, você cria outros laço FOR, para percorrer o [ i ] e dentro deste laço, cria outro FOR para percorrer o [ j ] e ao mesmo tempo a resposta correta, comparando as duas, se estiver a nota correta você vai somando.

Use o exemplo abaixo para a nota final:

int nota;
for(i=0;i<alunos;i++)
{

nota =0;
for(j=0;j<questoes;j++)
{

if ( vet_resp[j]==vet_gab[j] ) nota++;

}

printf("\nMatricula: %1d Nota: %d",vet_matricula[i], nota);

}

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...