Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
for(j=1; j<=20; j++){
printf("\nQuestao %d:", j);
scanf(" %c ", quesaot[j]);
if ((gab[j-1] == questao[j]) || (gab2[j-1] == questao[j])){
s_nota += 1;
}
}
Ola,
Gente no modulo PROVA não lê as 10 questões nem compara.
Alguém pode me ajudar a descobrir o erro, Por Favor?
>
Nathália!
Dei uma rápida olhada na função prova. Este scanf() está faltando o operador de endereço &.
scanf(" %c ", quest[j]);
Esta função (prova) é do tipo int mas não tem nenhum return, veja se está correto.
Continua dando erro :(
Obrigada pela ajuda!
O nome da variável vetor para a qual você está lendo um caractére para cada posição dentro do laço de repetição está errado. Está escrito quesaot na hora em que faz a leitura do caractére quando na verdade o nome correto é questao bem como está na seguinte linha abaixo dessa que eu digo como bem podemos ver na comparação dela com a variável vetor gab e também gab2. A letra t está adiante das letras a e o quando na verdade como bem podemos ver no código ela vem antes dessas duas letras até mesmo para que o nome dessa mesma variável faça sentido por ser a forma mais próxima da palavra "questão" do idioma português. Usar nomes errados de variáveis em linguagem C é um erro de programação e se não for consertado esse erro o compilador não permitirá a criação do programa por ele não saber que os dois nomes diferentes na verdade se tratam da mesma variável. É por isso que o seu programa não funciona mas além disso há mais coisas erradas nele:
>
Em 08/12/2016 at 18:20, exata0mente disse:
Nathália!
Dei uma rápida olhada na função prova. Este scanf() está faltando o operador de endereço &.
scanf(" %c ", quest[j]);
Exato. A falta do operador de endereço & vai fazer com que o seu programa trave e não funcione pois a função scanf necessita dele para poder fazer a leitura de um caractére para cada posição da variável vetor questao.
Outra coisa errada que tem é que utilizar espaços entre as aspas e o %c na função de leitura de caractére scanf irá fazer com que o programa não funcione como deve pois ele irá ler muito mais caracteres digitados pelo usuário do que o pretendido mesmo que ele armazene no vetor somente a quantidade que se quer. Isso também é erro.
Então a linha de código do seu programa:
scanf(" %c ", quesaot[j]);
Após corrigidos os erros de nome errado de variável, falta de operador de endereço & e espaços desnecessários entre as aspas da função de leitura de caractére scanf irá ficar:
scanf("%c", &questao[j]);
Nathália!
Dei uma rápida olhada na função prova. Este scanf() está faltando o operador de endereço &.
scanf(" %c ", quest[j]);
Esta função (prova) é do tipo int mas não tem nenhum return, veja se está correto.