#include <stdio.h>
#include <string.h>
int main() {
char palavrasecreta[20];
sprintf(palavrasecreta, "MELANCIA");
int acertou = 0;
int enforcou = 0;
char chutes[26];
int tentativas = 0;
do {
for(int i = 0; i < strlen(palavrasecreta); i++) {
int achou = 0;
for(int j = 0; j < tentativas; j++) {
if(chutes[j] == palavrasecreta[i]) {
achou = 1;
break;
}
}
if(achou) {
printf("%c ", palavrasecreta[i]);
} else {
printf("_ ");
}
}
printf("\n");
char chute;
printf("Qual letra? ");
scanf(" %c", &chute);
chutes[tentativas] = chute;
tentativas++;
} while (!acertou && !enforcou);
}
for(int i = 0; i < strlen(palavrasecreta); i++) {
int achou = 0;
for(int j = 0; j < tentativas; j++) {
if(chutes[j] == palavrasecreta[i]) {
achou = 1;
break;
}
}
Nesse exato ponto do código, o looping percorre a palavra secreta, e o looping interno percorre o array chutes, correto? Ao meu ver, a cada letra digitada, o looping interno percorre todo o array chutes. Como teoricamente, ele pode conter até 26 elementos, isso não acarreta em carga para o processador, mas se fossem gigabytes de informação esse método não poderia ser usado, creio eu(desconsidere o que eu disse se minha interpretação estiver errada). Comecei a aprender C agora, mas em Python, poderia utilizar algo como pop() para descarregar o array chutes e manter somente as letras corretas em outro array, em C existe algo parecido?