Hellsius 0 Denunciar post Postado Maio 8, 2011 Fiz a parte principal do exercicio abaixa, só não fiz o RA, RM por que nem o principal deu certo, kkk. Seguinte, quando informo as respostas das perguntas ele sempre me retorna como nota 0, mesmo que acerte alguma do gabarito ele sempre retorna zero e se eu coloco uma quantidade de alunos ele só pede as respostas das perguntas do primeiro aluno e nunca do outros, eu sou novato em programação e este émeu segundo exercicio com vetor e ja revisei o codigo varias vezes e não consigo achar algum erro. Segue o exercicio e o codigo abaixo: Faça um programa que calcule as notas dos alunos em uma prova de múltipla escolha. Cada prova tem 5 questões e cada questão vale 2 pontos. Primeiro deverá ser lida a quantidade de alunos e o gabarito para a correção da prova (vetor). Depois, para cada aluno ler o ra e suas respectivas respostas. Para cada aluno exibir seu rm e sua nota (ex.: 4 acertos, nota 4). #include <stdio.h> #include <conio.h> #include <math.h> int main() { // Variaveis char gab[0]='B', gab[1]='D', gab[2]='A', gab[3]='C', gab[4]='A'; // Gabarito com as respostas da prova char resp[4]; // Respostas informada pelo usuario int qtalunos; int nota=0; int pergunta, y, i, x; // Imprementos para o for // Entrada de Dados printf("Informe a quantidade de alunos: "); scanf("%d", &qtalunos); // Processamento for(pergunta=1, y=0; pergunta<5, y<5; pergunta++, y++) // Este for coleta as respostas das 5 perguntas. {//i_for1 printf("Informe a resposta da pergunta %d", pergunta); scanf("%s", &resp[y]); }//f_for1 for(i=1; i<qtalunos; i++) // Este for pega a quantidade de alunos e faz com que o 1° aluno entre no segundo for. {//i_for2 for(x=0; x<5; x++) // Entrando neste segundo for deste primeiro aluno, é feita uma comparação das respostas e perguntas do aluno. {//i_for3 if(toupper(resp[x])==gab[x]) {//i_if1 nota = nota+2; }//f_if1 }//f_for3 printf("A nota do %d° aluno eh: %d", i, nota); // Depois da comparação é exibido qual aluno e sua nota na avaliação. }//f_for2 // Final do Codigo getch(); } Compartilhar este post Link para o post Compartilhar em outros sites
Arieh Fabbro 0 Denunciar post Postado Maio 9, 2011 Olá Eu modifiquei o código e coloquei os comentários ao lado de cada item, espero ter ajudado int main() { // Variaveis char gab[5] = { 'B', 'D', 'A', 'C', 'A' }; //Precisa de um vetor de 5 espaços para armazenar 5 notas (começa no 0 e termina no 4) char resp[5]; //São 5 respostas para 5 perguntas int qtalunos; int nota; int y, i; //Retirada da variavel pergunta e x // Entrada de Dados printf("Informe a quantidade de alunos: "); scanf("%d", &qtalunos); // Processamento for(i=1; i<=qtalunos;i++) //O igual(=) é necessario, se qtalunos=2, o for tem q passar duas vezes, antes passava uma vez só {//i_for2 nota=0; //Precisa zerar a nota toda vex para antes usá-la novamente for(y=0;y<5;y++) //Use apenas y. {//i_for1 Essa parte precisa ser repetida para cada aluno printf("Informe a resposta da pergunta %d: ", y+1); //A antiga variavel pergunta era sempre pergunta = y + 1 scanf("%s", &resp[y]); }//f_for1 for(y=0;y<5;y++) //Use apenas y. {//i_for1 if(toupper(resp[y])==gab[y]) {//i_if1 nota = nota + 2; }//f_if1 }//f_for1 printf("A nota do %d° aluno eh: %d\n\n", i, nota); }//f_for2 //Voce pode usar um for aqui para varrer o vetor e imprimir as notas de cada aluno // Final do Codigo getch(); } Como o intuito é usar vetor, eu deixei a parte de pegar o gabarito separado da parte de conferir o gabarito, mas podia colocar juntos q dava na mesma e n precisaria usar o vetor Compartilhar este post Link para o post Compartilhar em outros sites
Hellsius 0 Denunciar post Postado Maio 11, 2011 Tudo funcionou muito bem, só esta parte que não: if(toupper(resp[y])==gab[y]) Aproposito, foi perfeita suas explicações, me ajudaram com o programa e me deu um up a mais de conhecimento, muito bom mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
Arieh Fabbro 0 Denunciar post Postado Maio 11, 2011 Esqueci de falar para incluir essa biblioteca, as funções precisam das bibliotecas delas para funcionarem #include <ctype.h> Compartilhar este post Link para o post Compartilhar em outros sites
Hellsius 0 Denunciar post Postado Maio 17, 2011 Opa, vlw mesmo. Topico resolvido! Compartilhar este post Link para o post Compartilhar em outros sites