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

Dwuwymiarowa tablica char - nieprawidłowe wartości podczas wypisywania
AR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
0

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

Kopiuj
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.

Nomysz
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 60
0

Bardziej tak to powinno być :)

Kopiuj
        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

HA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 115
0
Kopiuj
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'

Kopiuj
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

AR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.