Работа с элементами диагоналей квадратной матрицы - 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; }
Объяснение кода листинга программы
В этом коде:
- Синтаксический анализ и компиляция кода
- Задается размер матрицы (n)
- Выделяется память под матрицу (m)
- Заполняются элементы матрицы случайными числами от -5 до 5
- Находится минимальная сумма элементов главной диагонали матрицы
- Находится минимальная сумма элементов побочной диагонали матрицы
- Выводится минимальная сумма элементов диагоналей на экран
- Программа ожидает нажатия клавиши для завершения работы
- Свободно выделяется память, занятая под матрицу (m)
- Возвращается 0, что означает успешное завершение работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д