Programação Progressiva
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Programação Progressiva

Fórum para dúvidas dos sites: Programação Progressiva, Java Progressivo, C Progressivo


Você não está conectado. Conecte-se ou registre-se

Duvida em Matriz

2 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1Duvida em Matriz Empty Duvida em Matriz Ter Ago 12, 2014 7:23 pm

Gustavo Fabro'



Galera tudo bem? Sou iniciante no mundo da programação, espero que esse fórum possa atender algumas duvidas minhas,  vamos lá. Fiz um jogo da velha bem simples com o que sei até então, criei uma matriz [3][3] para alocar as posições no tabuleiro, os X e O, porém essa matriz está ficando com lixo, então fiz uma "for" para limpá-la, adicionando valores nulos dessa forma:

for (i=0;i<=2;i++){
   for(j=0;j<=2;j++)
       pla[i][j]='\0';
}

No primeiro loop funciona, a matriz fica limpa, dai o usuário digita a posição do "X" e quando dá enter que vai pra rodada do "O", aparece um lixo, e sempre ta aparecendo em uma mesma posição, e mesmo que o usuário bote alguma letra (X ou O) nessa posição, ele muda nas próximas rodadas, e volta alguma lixo. O que será? Alguma outra forma de limpar a matriz?

2Duvida em Matriz Empty Re: Duvida em Matriz Ter Set 16, 2014 5:50 pm

Mauro Britivaldo

Mauro Britivaldo

Olá também estou aprendendo!
Eu usei outro método para iniciar a matriz. O que seria por assim dizer uma boa prática é:
Iniciar sempre no momento de definição.
Ex.:
Código:
int main(void)
{
   /*Inicie o vetor/matriz com valor NULL, 0 ou '\0' que são iguais*/
   char cPla[3][3] = {0},
   //Observe que inicio apenas com um digito 0, pois o compilador iniciará
   //o resto da matriz para mim com todos os valores 0 restantes.
        cColuna = 0, //Tipo char também é um tipo inteiro e '\0' também é igual 0.
        cLinha = 0;
   //ou ainda posso Iniciar com um caractere que eu quiser assim:
    for(cLinha = 0;cLinha <= 2;cLinha++)
      for(cColuna = 0;cColuna <= 2; cColuna++)
      {
            cPla[cLinha][cColuna] = '#';

            if(cColuna == 2)//Vai criar uma nova linha sempre que as colunas acabarem.
               printf("%c\n", cPla[cLinha][cColuna]);
            else
               printf("%c\t", cPla[cLinha][cColuna]);
      }


//system("PAUSE");
return 0;
}

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos