Ir para conteúdo
Fórum Script Brasil
  • 0

[RESOLVIDO] Preciso de ajuda com um código!


KunayBro

Pergunta

Oi, estou com um problema no seguinte código:

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

int main() {
	char palavrasecreta[20];
	
	sprintf(palavrasecreta, "MELANCIA");

	int acertou = 0;
	int enforcou = 0;
	char chute;
	printf("tente chutar alguma letra!");
	scanf(" %c", &chute);
	
	
	do {
		
		for(int i = 0; i < strlen(palavrasecreta); i++); {
			if(palavrasecreta[i] == chute); {
				printf("Na posicao %d tem essa letra", i);	
			}
		}	
		printf("\n");
		
	} while(!acertou && !enforcou);
}

Quando eu tento compilar para rodar o programa, eu recebo esse erro:

 In function 'main':
19    22       [Error] 'i' undeclared (first use in this function)
19    22       [Note] each undeclared identifier is reported only once for each function it appears in

(A linha 19 se refere ao if que está dentro do for)

o compilador diz que a variável i não foi declarada, mas eu já tinha declarado ela no for. Eu tentei declarar antes, acima do for e até mesmo acima do dowhile, o compilador executa mas não faz o que eu desejo, ele dá os mesmos resultados. O objetivo do código é criar um jogo da forca(nn tá concluído), até agora eu tentei fazer para que o programa identifique se a letra que o usuário enviou tem na palavra secreta, quando eu executo e envio uma letra ele sempre dá a mesma resposta "Na posicão 8 tem essa letra" mesmo se não tiver.

Se alguém puder me ajudar eu fico agradecido
 

Editado por KunayBro
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

dependendo do padrão de c que usar declarar o i dentro de for n é permitido. Prove tirar o int i = 0, declare o i ao principio do programa, e ponha i = 0 n seu lugar.
Que IDE você usa?

Editado por vangodp
Link para o comentário
Compartilhar em outros sites

  • 0

Estou usando Code Blocks.
 Eu li seu comentário e pensei em fazer assim:

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

int main() {
	char palavrasecreta[20];

	sprintf(palavrasecreta, "MELANCIA");

	int i;
	int acertou = 0;
	int enforcou = 0;
	char chute;
	printf("tente chutar alguma letra!\n");
	printf("Seu chute: ");
	scanf(" %c", &chute);
    i = 0;

	do {
		for(i; i < strlen(palavrasecreta); i++); {
			if(palavrasecreta[i] == chute); {
				printf("Na posicao %d tem essa letra", i);
			}
		}
		printf("\n");

	} while(!acertou && !enforcou);
}

Era desse jeito que você estava querendo me ensinar? Bom, eu compilei para rodar e funcionou, mas o programa trava, ele fica enviando a mensagem "Na posição 8 tem essa letra" sem parar!

 

Editado por KunayBro
Link para o comentário
Compartilhar em outros sites

  • 0
30 minutos atrás, KunayBro disse:

Estou usando Code Blocks.
 Eu li seu comentário e pensei em fazer assim:


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

int main() {
	char palavrasecreta[20];

	sprintf(palavrasecreta, "MELANCIA");

	int i;
	int acertou = 0;
	int enforcou = 0;
	char chute;
	printf("tente chutar alguma letra!\n");
	printf("Seu chute: ");
	scanf(" %c", &chute);
    i = 0;

	do {
		for(i; i < strlen(palavrasecreta); i++); {
			if(palavrasecreta[i] == chute); {
				printf("Na posicao %d tem essa letra", i);
			}
		}
		printf("\n");

	} while(!acertou && !enforcou);
}

Era desse jeito que você estava querendo me ensinar? Bom, eu compilei para rodar e funcionou, mas o programa trava, ele fica enviando a mensagem "Na posição 8 tem essa letra" sem parar!

 

eu fiz um GIF pra te mostrar como ficou, aí está

2020-08-08-14-40-05_Trim.gif

Link para o comentário
Compartilhar em outros sites

  • 0

 

Em 08/08/2020 em 14:51, KunayBro disse:

Era desse jeito que você estava querendo me ensinar? Bom, eu compilei para rodar e funcionou, mas o programa trava, ele fica enviando a mensagem "Na posição 8 tem essa letra" sem parar!

Naturalmente. O programa está em loop infinito, pois não existe um critério de parada, já que a condição 

 

Em 08/08/2020 em 14:51, KunayBro disse:

while(!acertou && !enforcou);

será sempre verdadeira enquanto você não alterar os valores das variáveis acertou e enforcou.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...