No meu código declaro da variável autoexplicativa "numerodetentativas" como de valor 0 para depois trocar o valor de acordo com a dificuldade escolhida. Entretanto por algum motivo ela segue com o valor que foi declarado inicialmente e meu código roda de maneira alheia ao que quero. Quando declaro 0 o valor é zero, quando não declaro com valor o valor é um número do lixo e por aí vai. Gostaria de entender o motivo e obviamente corrigi-lo. O código todo está assim:
#include<stdio.h>
#include<stdbool.h>
int main()
{
const int NUMEROSECRETO = 42;
int chute = 0;
//cabeçalho
printf("********************************\n");
printf("BEM VINDO AO JOGO DA ADIVINHAÇÃO\n");
printf("********************************\n\n");
//escolha da dificuldade
char dificuldade;
bool naoescolheu = true;
int numerodetentativas = 0;
printf("Escolha a sua dificuldade:\n");
printf("Fácil(F)\n");
printf("Médio(M)\n");
printf("Difícil(D)\n");
printf("Escolha: ");
scanf("%s", &dificuldade);
while(naoescolheu) //while1
{
if(dificuldade == 'F')
{
numerodetentativas = 15;
naoescolheu = false;
}//endif
else if(dificuldade == 'M')
{
numerodetentativas = 10;
naoescolheu = false;
}//endielseif
else if(dificuldade == 'D')
{
numerodetentativas = 5;
naoescolheu = false;
}//endelseif
else
{
printf("Por favor, escolha uma alternativa válida.\n\n");
}//endelse
}//endwhile1
printf("Você possui este número de tentativas: %d\n", numerodetentativas);
for(int i = 1; i <= numerodetentativas; i++)
{
//adivinhação do número secreto
printf("Tente adivinhar o número secreto!\n");
printf(" O seu chute é: ");
scanf("%d", &chute);
if(chute == NUMEROSECRETO)
{
printf("Meus parabéns, você acertou! O número secreto é %d", NUMEROSECRETO);
}
else if(chute > NUMEROSECRETO)
{
printf("Que pena, você errou. Seu chute foi maior do que o número secreto.\n\n");
}
else if(chute < NUMEROSECRETO)
{
printf("Que pena, você errou. Seu chute foi menor do que o número secreto.\n\n");
}
}//endfor
printf("Infelizmente você perdeu, não possui mais tentativas.");
return 0;
}//endintmain