Dwuwymiarowa tablica char - nieprawidłowe wartości podczas wypisywania

0

Witam ma problem z dwuwymiarowa tablicą typu char. Poniżej zamieszczam fragment kodu. Prosiłbym aby ktoś wyjaśnił co jest nie tak.

char plansza[3][3];
    for(i=0; i<3; i++)
        for(j=0; j<3; j++)
            plansza[i][j]="X";
    for(i=0; i<3; i++)
          for(j=0; j<3; j++)
              printf("%d\n",plansza[i][j]);

Chciałbym wiedzieć dlaczego program wypisuje, że wartość w każdej "komórce" wynosi -14, a nie X.

0

Bardziej tak to powinno być :)

        int i,j;
	char plansza[3][3];
	for(i=0; i<3; i++)
		for(j=0; j<3; j++)
			plansza[i][j]='X';
	for(i=0; i<3; i++)
		for(j=0; j<3; j++)
			printf("%c\n",plansza[i][j]);
	return 0;

http://en.cppreference.com/w/cpp/io/c/fprintf

0
plansza[i][j]="X";

to się nie powinno nawet skompilować, bo plansza jest tablicą przechowujaca typ char czyli znaki, a "X" jest stringiem (ciągniem znaków). Powinieneś przypisać 'X'

printf("%d\n",plansza[i][j]);

jeżeli plansza jest tablicą ze znakami to zeby wyświetlić znak powinieneś użyc "%c", %d jest do liczb całkowitych

0

Dzięki panowie. Po prostu z tablica byla poczatkowo intowa i zamieniajac na char'y zapomnialem o tym %.

1 użytkowników online, w tym zalogowanych: 0, gości: 1