Rzutowanie - sumowanie przez int znaków char

0

Witam, chciałbym podwójnie zapętlić (for), żeby nie wypisywać wszystkich linijek po kolei.
Problem się pojawia jeśli chcę zapętlić znaki '1' itp

Wiadomo, że znaków nie można sumować, zatem jak należy rzutować aby te znaki sumowało, liczyło, bądź do każdej liczby dodawać o jedną więcej ?

plansza[2][0]='1';
plansza[2][1]='2';
plansza[2][2]='3';
plansza[1][0]='4';
plansza[1][1]='5';
plansza[1][2]='6';
plansza[0][0]='7';
plansza[0][1]='8';
plansza[0][2]='9';

Pozdrawiam

0

Lekcja na dziś: reszta z dzielenia, operator %.
0%3 = 0
1%3 = 1
2%3 = 2
3%3 = 0
4%3 = 1
5%3 = 2
6%3 = 0

0

Nie wiem czy się dobrze zrozumieliśmy..

Dla lepszego zobrazowania poprawie powyższy kod:

plansza[0][0]='1';
plansza[0][1]='2';
plansza[0][2]='3';
plansza[1][0]='4';
plansza[1][1]='5';
plansza[1][2]='6';
plansza[2][0]='7';
plansza[2][1]='8';
plansza[2][2]='9';

Mogę zrobić to w dwie pętle:

for(int j=0; j<3; j++)
{
for(int i=0; i<3; i++)
{
int a=0;
a++;

  	plansza[j][i]=a;
  }

}

Jesli wszystko poprawnie wpisalem to do kazdej plansza będzie dopisywać kolejno jedna liczbe więcej.

Niestety nie moge tego zrobić bo są one w char jako '1', '2' a nie 1, 2

Pozdrawiam :)

3

Znaki można sumować:

char a='3';
char b='5';
char c=a+b-'0';
printf("%c",c);

Potrzebujesz jedno z:
1.

for(int y=0,i='0';y<3;++y) for(int x=0;x<3;++x,++i) plansza[y][x]=i;
for(int y=0;y<3;++y) for(int x=0;x<3;++x,++i) plansza[y][x]='0'+3*y+x;
for(int i=0;i<9;++i) plansza[i/3][i%3]='0'+i;
  1. jest jeszcze mnóstwo różnych wersji, po prostu zacznij kombinować
0

Dziękuję za pomoc.

      
     plansza[2][0]='1';
     plansza[2][1]='2';
     plansza[2][2]='3';
     plansza[1][0]='4';
     plansza[1][1]='5';
     plansza[1][2]='6';
     plansza[0][0]='7';
     plansza[0][1]='8';
     plansza[0][2]='9';

Zdecydowałem się na takie rozwiązanie:

  char a='0';
  for (int i=2;i>=0;i--)
  {
  	 for(int j=0;j<3;j++)
  	 {
  	 	a+=1;
  	 	plansza[i][j]=a;
  	 }
  }

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