4 5 11 15
10 3 6 12
14 9 2 7
16 13 8 1
Суть программы должна быть в том чтобы вывести по порядку числа в данном случае 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15( через главную диагональ и по кривым )
Составил программу я понял что она ходит по вихрю как переделать чтоб она по заданию шла?
Код: Выделить всё
#include "stdafx.h"
#include <iomanip>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int p, j, i;
const int N = 4;
static int arr[N][N] = { { 4, 5, 11, 15 },//вводим матрицу
{ 10, 3, 6, 12 },
{ 14, 9, 2, 7 },
{ 16, 13, 8, 1 } };
for (p = 0; p<N / 2; p++)
{
for (j = p; j <= N - p - 1; j++)
cout << setw(4) << arr[p][j];
for (i = p + 1; i<N - p; i++)
cout << setw(4) << arr[i][N - p - 1];
for (j = N - p - 2; j >= p; j--)
cout << setw(4) << arr[N - p - 1][j];
for (i = N - p - 2; i >= p + 1; i--)
cout << setw(4) << arr[i][p];
}
getchar();
return 0;
}