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;
}