Квадратная матрица - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно создать квадратную матрицу по рисунку. По стрелочке расположить натуральный ряд. Остальные элементы равны нулю. Заранее спасибо! P.S. gcc

Решение задачи: «Квадратная матрица»

textual
Листинг программы
#include <stdio.h>
 
void main() {
    int i,j,n,m=0,q=0,p=0;
    printf("Input n= ");
    scanf("%d",&n);
    int a[n][n];
    for (i=0;i<n;i++)
        for (j=0;j<n;j++)
            a[i][j]=0;
    for (i=0;i<2*n-1;i++)
    {
        if (i>=n)
        {
            q--;
            p++;
        }
        else
            q++;
        for (j=0;j<q;j++)
            if ((n-j-p-1)==0 || (n-j-p-1)==(n-1) || (n-q+j-p)==0 || (n-q+j-p)==(n-1) )
                if (i%2==0)
                    a[n-j-p-1][n-q+j-p]=++m;
                else
                    a[n-q+j-p][n-j-p-1]=++m;
    }
    //print
    for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++)
            printf("%d\t", a[i][j]);
        printf("\n");
    }
    getch();
}

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы