Napisz progra, który utworzy i wypisze tablicę według poniższego modelu.
Wymiary tablic podaje użytkownik programu.
Elementami tablicy są liczby całkowite.
Liczby w kolejnych polach tablicy odwzorowują kolejność odwiedzenia pół tej tablicy ( trasę wędrówki po polach tablicy).
1 2 6 7 14 15 22
3 5 8 13 16 21 23
4 9 12 17 20 24 27
10 11 18 19 25 26 28
Znalazłem w temacie ogólnym rozwiązanie w PHP, oraz jedno w c++ użytkownika @Gray ; ( link do kodu tego Pana:http://ideone.com/b1VKxC), trochę go zmodyfikowałem jednak nie rozumiem niektórych linijek (tych pogrubionych):
Kod:
#include <iostream>
using namespace std;
int main()
{
int t[101][51];
int i = 0, j = 0, k = 2, w,h;
int dir = 1;
do
{
cout<<"Podaj liczbe wierszy: ";
cin>>h;
} while( (h<1) || (h>100) );
do
{
cout<<"Podaj liczbe kolumn: ";
cin>>w;
} while ( (w<1) || (w>50) );
t[0][0] = 1;
while (k <= w*h)
if (dir == 1) // z gory na dol
{
if(j+1<w)
{
j=j+1;
}
else
{
i=i+1;
}
while ( (i < h) && (j >= 0))
t[i++][j--] = k++;
i--, j++;
dir = 2;
}
else // z dolu do gory
{
if(i+1<h)
{
i=i+1;
}
else
{
j=j+1;
}
while (i >= 0 && j < w)
t[i--][j++] = k++;
i++, j--;
dir = 1;
}
for (int i = 0; i < h; i++)
{
for (int j = 0; j < w; j++)
printf("%d ", t[i][j]);
printf("\n");
}
return 0;
}
Zakładki