Найти минимальную сумму из сумм элементов диагоналей матрицы, параллельных побочной - 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;
}

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

В этом коде выполняется следующая последовательность действий:

  1. Ввод размера матрицы (n) и заполнение матрицы a[i][j] с помощью функции scanf.
  2. Инициализация переменных sumgiag и mins значением первого элемента главной диагонали матрицы a[0][0].
  3. Уменьшение значения n на единицу.
  4. Два вложенных цикла, которые проходят по элементам всех побочных диагоналей матрицы, начиная с главной.
  5. Для каждого элемента диагонали выводится его значение и сумма элементов диагонали (sumgiag) добавляется к общему значению mins.
  6. Если текущее значение mins больше, чем сумма элементов диагонали, то обновляется значение mins.
  7. После завершения второго вложенного цикла значение sumgiag сбрасывается в ноль.
  8. Выводится минимальная сумма элементов диагоналей матрицы под названием MinSumDiag.
  9. Программа возвращает 0, что означает успешное завершение работы.

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


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

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

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