Ir ao conteúdo

Posts recomendados

Postado

    Pessoal bom dia. Ontem na faculdade apareceu um desafio, um exercício sobre cubo mágico, em que devo contar quantos passos serão necessários para voltar o cubo para seu estado original. Criei matrizes para cada face, onde eu trabalho com a alteração dos valores dos "extremos" para que depois eu consiga detectar as mudanças.

    Cada Letra inserida de uma string que eu entro no início, é um giro (sentido horário ou antihorário) no cubo em uma das faces. Cada letra é uma face. Porém o que acontece é que, quando eu vou detectar cada letra e chamar o método de mudar a face, ele para ali naquele if e não verifica os outros, mesmo estando dentro do for. 

    Se eu entro por exemplo com: U (muda apenas 1 face) ocorre td normal. Mas quando eu entro com 2 letras: UR por exemplo, ele só mexe em uma face (da letra U).

    Código: 

int main(int argc, char *argv[]) {		// inicializa c/ valores padrão	inicializaMatrizes();		int i; 	char sequencia[] ="";	char *partes;		// Letras válidas: U F D R L B 	scanf("%s", &sequencia);		for(i=0;i<sizeof(sequencia);i++)	{		//printf("%c\n", sequencia[i]);				if(sequencia[i] == 'U') // sentido horario		{			mudaFace(sequencia[i]);			printf("Entrou U\n");		}		if(sequencia[i] == 'F')		{			mudaFace(sequencia[i]);			printf("Entrou F\n");		}		if(sequencia[i] == 'D')		{			mudaFace(sequencia[i]);			printf("Entrou D\n");		}		if(sequencia[i] == 'R')		{			mudaFace(sequencia[i]);			printf("Entrou R\n");		}		if(sequencia[i] == 'L')		{			mudaFace(sequencia[i]);			printf("Entrou L\n");		}		if(sequencia[i] == 'u')		{			mudaFace(sequencia[i]);			printf("Entrou u\n");		}		if(sequencia[i] == 'f')		{			mudaFace(sequencia[i]);			printf("Entrou f\n");		}		if(sequencia[i] == 'd')		{			mudaFace(sequencia[i]);			printf("Entrou d\n");		}		if(sequencia[i] == 'r')		{			mudaFace(sequencia[i]);			printf("Entrou r\n");		}		if(sequencia[i] == 'l')		{			mudaFace(sequencia[i]);			printf("Entrou l\n");		}					}			mostraValores();	//checaMudancas(); // mostra faces modificadas			return 0;}
Postado

    Cara eu fiz essa medição que você falou (do tamanho do vetor de char) e deu no resultado que você tinha falado, testei com UUU e o tamanho veio 1, teria que dar 3 porque tem 3 elementos: 3x1=3. como eu declaro esse vetor de char essa que e minha dúvida, de modo com que meu código consiga passar por todos os ifs, essa é que é minha dúvida. 

    É muito difícil eu mexer com c mas foi um exercicio passado em sala. 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!