Найти минимальную сумму из сумм элементов диагоналей матрицы, параллельных побочной - C (СИ)
Формулировка задачи:
Сумму элементов самой побочной диагонали я нашла, а вот как найти ниже и выше..
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- void main (void)
- {
- double a[20][20],c, min;
- int n, i, j,s=0;
- printf("Zadaite razmer massiva\n");
- scanf ("%d",&n);
- printf ("Vvedite massiv\n");
- for (i=0;i<n;i++)
- for (j=0;j<n;j++)
- scanf ("%lf",&a[i][j]);
- for (i=0;i<n;i++)
- c+=a[i][n-1-i];
- min=c;
- printf("%4.1f\n",c);
- getch();
- }
Решение задачи: «Найти минимальную сумму из сумм элементов диагоналей матрицы, параллельных побочной»
textual
Листинг программы
- #include <stdio.h>
- int main ()
- {
- double a[20][20];
- double mins, sumgiag;
- int n, i, k, j;
- printf("Zadaite razmer massiva\n");
- scanf ("%d",&n);
- printf ("Vvedite massiv\n");
- for (i=0;i<n;i++)
- {
- for (j=0;j<n;j++)
- scanf ("%lf",&a[i][j]);
- }
- sumgiag = 0;
- mins = a[0][0];
- --n;
- for(j = 0; j <= 1; ++j)
- for(k = n*j+j; k <= (j + 1)*n; ++k)
- {
- printf("Giagonal %2d: ", k+1); // можно убрать
- for(i = (n*j + (1-j)*k); i >= j*(k-n); --i)
- {
- printf("%3.1f ", a[i][k-i]); // можно убрать если не нужен вывод элементов диагоналей
- sumgiag += a[i][k-i];
- }
- printf("\n");
- if ( mins > sumgiag) mins = sumgiag;
- sumgiag = 0;
- }
- printf("MinSumDiag = %3.1f\n",mins);
- return 0;
- }
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Ввод размера матрицы (n) и заполнение матрицы a[i][j] с помощью функции scanf.
- Инициализация переменных sumgiag и mins значением первого элемента главной диагонали матрицы a[0][0].
- Уменьшение значения n на единицу.
- Два вложенных цикла, которые проходят по элементам всех побочных диагоналей матрицы, начиная с главной.
- Для каждого элемента диагонали выводится его значение и сумма элементов диагонали (sumgiag) добавляется к общему значению mins.
- Если текущее значение mins больше, чем сумма элементов диагонали, то обновляется значение mins.
- После завершения второго вложенного цикла значение sumgiag сбрасывается в ноль.
- Выводится минимальная сумма элементов диагоналей матрицы под названием MinSumDiag.
- Программа возвращает 0, что означает успешное завершение работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д