Работа с элементами диагоналей квадратной матрицы - C (СИ)

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

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

Матрица квадратная, массив нужно выделить динамически. . Найти наименьшую из сумм диагоналей , параллельных главной (полагаю, при этом главная не участвует). Работа с главной и побочной диагоналями понятна, а вот в этом случае зашёл в тупик. Прошу помощи.

Решение задачи: «Работа с элементами диагоналей квадратной матрицы»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int n;
    int *m,i,j,min,sum;
    printf("Сторона матрицы:");
    scanf("%d",&n);
    m=calloc(n*n,sizeof(int));
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {
        *(m+i*n+j)=(int)(rand()/32767.*10)-5;
        printf("%2d%c",*(m+i*n+j),(j+1!=n)?32:10);
    }
    min=*(m+n-1);
    for(i=1;i<n;i++)
    {
        sum=0;
        for(j=0;j<n-i;j++) sum+=*(m+j*n+i+j);
        if(sum<min) min=sum;
    }
    for(i=1;i<n;i++)
    {
        sum=0;
        for(j=0;j<n-i;j++) sum+=*(m+(i+j)*n+j);
        if(sum<min) min=sum;
    }
    printf("minsum:%d\n",min);
    getch();
    return 0;
}

Объяснение кода листинга программы

В этом коде:

  1. Синтаксический анализ и компиляция кода
  2. Задается размер матрицы (n)
  3. Выделяется память под матрицу (m)
  4. Заполняются элементы матрицы случайными числами от -5 до 5
  5. Находится минимальная сумма элементов главной диагонали матрицы
  6. Находится минимальная сумма элементов побочной диагонали матрицы
  7. Выводится минимальная сумма элементов диагоналей на экран
  8. Программа ожидает нажатия клавиши для завершения работы
  9. Свободно выделяется память, занятая под матрицу (m)
  10. Возвращается 0, что означает успешное завершение работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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