#include <stdio.h>#include <conio.h>int Counter;int Dim;int* Matrix;int i=0,j=0;void GoRight();void GoLeftAndDown();void GoDown();void GoRightAndUp();int main() { printf("Введите размерность матрицы:> "); scanf("%i",&Dim); Matrix=new int[Dim*Dim]; Counter=1; Matrix[i*Dim +j]=Counter; Counter++; while(!((i==Dim-1)&&(j==Dim-1))) { GoRight(); GoLeftAndDown(); GoDown(); GoRightAndUp(); } Matrix[Dim*Dim-1]=Counter; for(int i=0;i<Dim;i++) { for(int j=0;j<Dim;j++) printf("%4i",Matrix[i*Dim+j]); printf("\n"); } getch(); return 0; }void GoRight(){ if((i==Dim-1)&&(j==Dim-1)) return; if(j==Dim-1) GoDown(); else j++;}void GoDown(){ if((i==Dim-1)&&(j==Dim-1)) return; if(i==Dim-1) GoRight(); else i++;}void GoLeftAndDown() { if((i==Dim-1)&&(j==Dim-1)) return; while((i<Dim)&&(j>=0)) { Matrix[i*Dim+j]=Counter; Counter++; i++; j--; } j++; i--; }void GoRightAndUp() { if((i==Dim-1)&&(j==Dim-1)) return; while((j<Dim)&&(i>=0)) { Matrix[i*Dim+j]=Counter; Counter++; j++; i--; } i++; j--; }