Informática, perguntado por thallescedro, 1 ano atrás

Não faço ideia como fazer essa questão, tentei usar uma comparação de strings para cada elemento da string, mas não funciona, segue o que tentei:
PS: não sei como deixar tudo tabulado direitinho e as bibliotecas as vezes não aparecem aqui, contudo estão no programa.


#include <studio.h>
#include <stdlib.h>
#include <string.h>


int main() {

int i,j,n=0,nota;
char res[10] = {'C','B','A','B','E','D','D','A','C','E'}, alu[10], aluM[10];


printf("Digite as respostas do aluno:\n");
gets(alu);
strcpy(aluM,strupr(alu)); //copio as respostas todas em maiúsculo
for(i=0;i<10;i++){
for(j=0;j<10;j++){
n=0;
if(strcmp(res[i],aluM[j])==0){ //tento comparar cada índice como se fosse cada letra
n++;
nota = n;
}
}
}
printf("Nota: %d", nota);
return 0;
}

Anexos:

Soluções para a tarefa

Respondido por KuroeJin
0
Não vai funcionar mesmo, pois strings são aspas duplas. E o que podes fazer é um for ou função que faça isso, por exemplo:

for(i = 0; i<10; i++){
 if(res[i]==alunores[i]) acertos++; }

Para isso, crie a variável acertos com valor inicial 0(int acertos =0;).

E antes do for acima, cria um for ou função que recebe o gabarito do aluno, exemplo:

for(i=0; i<10; i++){
 printif("Qual foi a resposta da questão %d(A, B, C, D ou E): ", i+1);
 scanf("%c", &alunores[i]);
 fflush(stdin);  }// caso o teu sistema for linux substitua o fflush por _fpurge(stdin);

thallescedro: Mas pode comparar string desse modo? com == ? não teria que usar a strcmp?
thallescedro: PS: são aspas simples mesmo, pelo menos o DEV da erro ao compilar com aspas duplas.
KuroeJin: pois é. acontece se comparares com a função da biblioteca string, talvez, tenhas que armazenar o valor da diferença em uma variável e depois subtrair de 10 para ter o número total de acertos(nunca fiz isso).
KuroeJin: 10-variável;
thallescedro: funcionou desse jeito, tentarei fazer do outro jeito também, declarando todas as respostas de uma vez só. Muito obrigado.
Perguntas interessantes