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;
}