-1
Good evening, fellas, I hope you’re all right.
The problem where I need help is a very simple code (hangman game), however, as I am new to programming and am learning C I am not identifying where exactly is the error. The program runs everything normal, the problem is that after I type the first letter of the word the program tries to read and ends the code.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
char palavra[21];
char resposta[21];
char letra[21];
char espaco[21]="*";
char erradas[21];
char tamanho;
int tentativas=5, acertos=0, erros=5;
int cont, corretas;
printf(">>>>>>>>>>><<<<<<<<<<\n");
printf(">>> JOGO DA FORCA <<< \n");
printf(">>>>>>>>>><<<<<<<<<<<\n");
printf("\nDigite a palavra que deseja: ");
gets(palavra);
for (cont =0; cont<strlen(palavra); cont++)
espaco[cont]='*';
tamanho=strlen(palavra);
while (erros > 0)
{
corretas =0;
printf("\n%s\n", espaco);
printf("\nDigite uma letra: ");
gets(letra);
printf("\n\tLetra digitada: %s\n", erros);
for (cont =0; cont <strlen(palavra); cont++)
{
if (letra[0] == palavra[cont])
{
espaco[cont] = palavra[cont];
corretas++;
acertos++;
}
}
if (corretas ==0);
{
tentativas--;
if (tentativas ==0)
{
printf("\nVoce Faleceu\n");
printf("\nA palavra era %s\n", palavra);
break;
}
else
{
printf("\nVoce errou uma letra, ainda tem %d chances", tentativas);
erradas[erros] = letra[0];
erros++;
}
while (acertos == tamanho)
{
printf("\nAcertou a palavra\n");
break;
}
if (letra == palavra)
{
printf("\nAcertou uma letra\n");
}
}
}
}
I believe that here:
if (corretas ==0);
don’t have this;
otherwise you will be executing the null command if the condition is true. I did not understand thiswhile (acertos == tamanho) {
because if it’s true you don’t modify the variables inside the loop and break down, aif
?– anonimo