Jump to content
Fórum Script Brasil
  • 0

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


Question

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
 

Edited by KunayBro
Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 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?

Edited by vangodp
Link to post
Share on other sites
  • 0
Posted (edited)

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!

 

Edited by KunayBro
Link to post
Share on other 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 to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148872
    • Total Posts
      644906
×
×
  • Create New...