forca c não funciona!

1. forca c não funciona!

luciano
kozyrov

(usa Outra)

Enviado em 05/12/2013 - 12:04h

por favor não pode me ajudar, o codigo funciona, mas quando cai uma palavra que é de 6 letras ou menos, não compara a palavra e da como "você errou" mesmo tento acertado o codigo é esse:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

int main(void) {

char letra=' ',letra_digitada[10], PALAVRA[10], compara[10], recebePalavra[10]= {"__________"};
char banco[5][10]={"cavalo","cachorro","girafa","papagaio","gato"};
int i, cont_letra=0, cont=0, palavra=0 ;

srand(time(NULL));
palavra = rand() % 5;

for(i=0; i<10; i++){
PALAVRA[i]=banco[palavra][i];
}

while (cont <= 6) {

system("clear");
printf("Numero de letras: %i\n", strlen(PALAVRA));

if (letra != ' '){
letra_digitada[cont_letra] = letra;
cont_letra++;
printf("Letras já digitadas: ");
for (i=0; i<cont_letra; i++) {
printf("%c ", letra_digitada[i]);
}
}

printf("\n");

if (cont == 6){
for (i=0; i<10; i++) {
if (i < strlen(PALAVRA)) {
printf("%c ", recebePalavra[i]);
}
}
for (i=0; recebePalavra[i] != '_'; i++) {
compara[i] = recebePalavra[i];
}
if ((strcmp(compara, PALAVRA) == 0)){
printf("\n\nVocê acertou!\n");
for (i=0; i<10; i++) {
printf("%c", compara[i]);
}
break;
} else {
printf("\n\nVocê errou!\n");
for (i=0; i<10; i++) {
printf("%c", compara[i]);
}
break;
}
}

for (i=0; i<10; i++) {
if (i < strlen(PALAVRA)) {
printf("%c ", recebePalavra[i]);
}
}

printf("\n\n");
printf("Digite uma letra: ");
scanf("%c%*c", &letra); // %*c limpa o buffer

for (i=0; i<10; i++) {
if (letra == PALAVRA[i]) {
recebePalavra[i] = PALAVRA[i];
}
}

cont++;
}
return 0;
}


desde já obrigado.



  


2. Re: forca c não funciona!

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 05/12/2013 - 13:13h

Pra dizer a verdade aqui nem compilou.


3. Re: forca c não funciona!

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 05/12/2013 - 13:35h

seu código compilou... E na atribuição de array está faltando o null.


4. Re: forca c não funciona!

luciano
kozyrov

(usa Outra)

Enviado em 05/12/2013 - 15:22h

não tem como eu colocar NULL pq a variável "recebePalavra[10]", tem que receber sempre '_'.


5. Re: forca c não funciona!

Guilherme
guipsp

(usa Ubuntu)

Enviado em 05/12/2013 - 17:37h

Pelo que olhei no código ele está escrito para receber seis letras, sendo que na sexta vai verificar se você acertou ou errou.


6. Re: forca c não funciona!

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 05/12/2013 - 21:39h

Curiosidade, por que está pedindo para digitar a letra no fim do código?


7. Re: forca c não funciona!

luciano
kozyrov

(usa Outra)

Enviado em 06/12/2013 - 10:51h

alterei para receber 5 e 4 tambem não deu, o codigo pra digita a letra ta no final pq eu quero que apareça depois da forca pra digitar e tb pq eu fui fazendo o codigo em cime e nao me liguei, ehhehe.


8. Re: forca c não funciona!

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 06/12/2013 - 18:01h

kozyrov escreveu:

alterei para receber 5 e 4 tambem não deu, o codigo pra digita a letra ta no final pq eu quero que apareça depois da forca pra digitar e tb pq eu fui fazendo o codigo em cime e nao me liguei, ehhehe.


Talvés seja isso. O programa está testando a primeira letra sem digitar nada. O correto seria desenhar a forca, pedir a letra e só depois realizar os testes.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts