Двухмерный Массив(змейки)

  • Автор темы Incle
  • Дата начала
I

Incle

Гость
#1
Всем привет, нужна помощь в трех программах(змейках).
Задача создать двухмерный массив n*n(можно n*m), обнулить его, после чего заполнить его единицами в последовательностях а,б,в(на рисунке показано), а потом вывести цифры так как показано на рисунке.
Вот мои варианты решения трех этих задач.
А вот как вывести на экран цифры в заданных последовательностях я не знаю.

C++:
#include <iostream>
#include <iomanip>
#include <windows.h>
// расширение функционала iostream,
// в частности setw()
using namespace std;

int main()
{
int const n=4;
int const m=4;

int Arr[n][m]= {0};
int i=0, j, k = 0, p=1;

while (i < n*m) /*Цикл по номеру витка*/
{
k++;
for (j=k-1;j<m-k+1;j++)
{
Arr[k-1][j]=p++;
i++;
}  /*Определение значений верхнего гор столбца*/ 
for (j=k;j<n-k+1;j++)
{
Arr[j][m-k]=p++;
i++;
}  /* --//-- По правому вертикальному столбцу*/

for (j=m-k-1;j>=k-1;j--)
{
Arr[n-k][j]=p++;
i++;
}  /* --//-- по нижнему горизонтальному столбцу*/ 

for (j=n-k-1;j>=k;j--)
{
Arr[j][k-1]=p++;
i++;
}  /* --//-- по левому вертикальному столбцу*/

}

for (int q=0; q<n; q++)
{
for (int w=0; w<m; w++)
{ 
cout << setw(4) << Arr[q][w];
}
cout << endl;
}
system("pause");
return(0);

}
C++:
#include <iostream>
#include <iomanip>
using namespace std;


int main()
{ 
int i, j, m, n, k;
cout<<"Enter Rows in matrix : ";
cin>>m;
cout<<"Enter Cols in matrix : ";
cin>>n;
int ** arr = new int * [m];
for(k = 1, i = 0; i < m; i++)
{
arr[i] = new int[n];
if(i % 2 == 0)
{
for(j = 0; j < n; j++)
arr[i][j] = k++;
}
else
{
for(j = n - 1; 0 <= j; j--)
arr[i][j] = k++;
}
for(j = 0; j < n; j++)
cout<<setw(3)<<arr[i][j]<<" ";
cout<<endl;
}
system("pause");
return 0;
}
C++:
#include <iostream>
#include <iomanip>
#include<stdio.h>
int main()
{
int A[4][4],i,j,k=1;
for(j=0;j<4;j++)
{
if (j%2 == 0)
{
for (i = 3; i > -1; i--)
{
A[j][i] = 17-k;
k++;
}
}
else
{
for (i = 0; i < 4; i++)
{  
A[j][i] = 17-k;
k++;
}
}

}

for(j=0;j<4;j++)
{
printf("\n");
for(i=0;i<4;i++)
printf("%4d",A[i][j]);
printf("\n");
}
system("pause");
return 0;
}


змейки.PNG