Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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
  Em 08/12/2016 at 21: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]);

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 21: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

×

Informação importante

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