Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

victorp_farias

[Resolvido] Mostra um numero desconhecido ao em vez do caractere

Recommended Posts

Estou com um problema tentando adicionar um caractere em um vetor e

em vez do programa me mostrar um espaço vazio um 'X' ou um 'O' ele exibe 32, 88 e 79 respectivamente.

Como posso solucionar esse problema? Segue abaixo o fonte do programa.

 

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    unsigned char tab[3][3];
    const char X='X', O='O', vazio=' ';
    int i=1,j=1, x, y;
    int win=1;
    for (i=1;i<4;i++){
        for(j=1;j<4;j++){
        tab[i][j]=vazio;
        }}
        while(win=1) {
    system("CLS");
    printf("Jogador 1 \n");
    printf("%d | %d  | %d \n", tab[1][1], tab[1][2], tab[1][3]);
    printf("%d | %d  | %d \n", tab[2][1], tab[2][2], tab[2][3]);
    printf("%d | %d  | %d \n", tab[3][1], tab[3][2], tab[3][3]);
    printf("Jogador 1 linha");
    scanf("%d", &x);
    printf("Jogador 1 coluna");
    scanf("%d", &y);
    tab[x][y]=X;
    //jogador 2
    system("CLS");
        printf("Jogador 2 \n");
    printf("%d | %d  | %d \n", tab[1][1], tab[1][2], tab[1][3]);
    printf("%d | %d  | %d \n", tab[2][1], tab[2][2], tab[2][3]);
    printf("%d | %d  | %d \n", tab[3][1], tab[3][2], tab[3][3]);
    printf("Jogador 2 linha");
    scanf("%d", &x);
    printf("Jogador 2 coluna");
    scanf("%d", &y);
    tab[x][y]=O;

}

    system("PAUSE");
    return EXIT_SUCCESS;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aew,

 

Quando você usa:

printf("%d | %d  | %d \n", tab[1][1], tab[1][2], tab[1][3]);

O %d pede para que um número seja mostrado, se você quer que uma letra seja mostrada, use %c, ficaria assim:

printf("%c | %c  | %c \n", tab[1][1], tab[1][2], tab[1][3]);

Para mais detalhes acesse http://www.cplusplus.com/reference/clibrary/cstdio/printf/

 

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

while(win=1) {

 

O jogo não termina?

 

Fácil. Preste atenção no formatador nos printfs...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque você está atribuindo no while. Mesmo que você defina win=0 em outra parte do código, não vai terminar. Ou você muda p/ == ou usa break num if (e nesse caso nem precisa dessa variável), o que alguns aqui acham 'porco' de se fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.