Publicação de acertos de cada aluno em uma prova?

Deseja-se publicar o numero de acertos de cada aluno em uma prova em forma de testes. A prova consta de 5 questões, cada uma com cinco alternativa identificadas por A, B, C, D e E. Para isso são dados:

* o cartao do cabarito;

* o cartão de resposta para cada aluno, contendo o seu numero e suas respostas.

Faça um algoritmo que resolva o problema e imprima os resultados. Faça o teste de mesa.

Resposta: A minha versão para este algoritmo em C++ não está informando o número correto de questões acertadas pelos alunos. Vocês poderiam me ajudar?

#include<cstdlib>

#include<math.h>

#include<string.h>

using namespace std;

int main()

{

int i,alunos[101],m,k,numero[101],cont;

char resposta[6][1],gabarito[6][1];

cout<<"Correcao da prova."<<endl;

cout<<"Digite o numero de alunos da sala."<<endl;

cin>>m;

cout<<"Informe as respostas corretas das 5 questoes."<<endl;

for(i=1;i<6;i++)

{

cout<<"Gabarito questao "<<i<<"."<<endl;

cin>>gabarito[i];

cout<<endl;

}

cout<<"******************Correcao das respostas dos alunos.**************************"<<endl;

for(k=1;k<=m;k++)

{

cout<<"Informe o numero do aluno."<<endl;

cin>>numero[k];

for(i=1;i<6;i++)

{

cout<<"Questao "<<i<<"."<<endl;

cin>>resposta[i];

cout<<endl;

}

}

for(k=1;k<=m;k++)

{

cont=0;

for(i=1;i<6;i++)

{

if(resposta[i]==gabarito[i])

{

cont=cont+1;

}

}

cout<<"O aluno de numero "<<numero[k]<<" acertou "<<cont<<" questoes."<<endl;

}

system("PAUSE>null");

return EXIT_SUCCESS;

}

Comments

  • Olá tudo bem? Espero que isso ajude você. Boa sorte. O que eu vi que está errado é que quando você precisa de uma matriz de char. você não vai usar só [1] mais sim [3]. Além disso você não vai precisar só de 6 respostas. Vai na verdade precisar de muito mais. Pelo mesmo do jeito que você fez.

    #include<cstdlib>

    #include<math.h>

    #include<string.h>

    #include <iostream>

    #include <iomanip>

    #include <string.h>

    using namespace std;

    int main()

    {

    int i,alunos[101],m,k,numero[101],cont,j;

    char resposta[101][3],gabarito[6][3];

    cout<<"Correcao da prova."<<endl;

    cout<<"Digite o numero de alunos da sala."<<endl;

    cin>>m;

    cout<<"Informe as respostas corretas das 5 questoes."<<endl;

    for(i=1;i<6;i++)

    {

    cout<<"Gabarito questao "<<i<<"."<<endl;

    cin>>gabarito[i];

    cout<<endl;

    }

    cout<<"******************Correcao das respostas dos alunos.**************************"<<endl;

    j=1;

    for(k=1;k<=m;k++)

    {

    cout<<"Informe o numero do aluno."<<endl;

    cin>>numero[k];

    for(i=1;i<6;i++)

    {

    cout<<"Questao "<<i<<"."<<endl;

    cin>>resposta[j];

    cout<<endl;

    j=j+1;

    }

    }

    j=1;

    for(k=1;k<=m;k++)

    {

    cont=0;

    for(i=1;i<6;i++)

    {

    if(strcmp (resposta[j],gabarito[i]) == 0)

    {

    cont=cont+1; }

    else {

    }

    j=j+1;

    }

    cout<<"O aluno de numero "<<numero[k]<<" acertou "<<cont<<" questoes."<<endl;

    }

    system("PAUSE>null");

    return EXIT_SUCCESS;

    }

Sign In or Register to comment.