Ir para conteúdo
Nathalia Lucca

String x Vetor

Recommended Posts


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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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]);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.