Работа с элементами диагоналей квадратной матрицы - 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, что означает успешное завершение работы программы

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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