Найти минимальную сумму из сумм элементов диагоналей матрицы, параллельных побочной - C (СИ)

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

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

Сумму элементов самой побочной диагонали я нашла, а вот как найти ниже и выше..
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <math.h>
  4. void main (void)
  5. {
  6. double a[20][20],c, min;
  7. int n, i, j,s=0;
  8. printf("Zadaite razmer massiva\n");
  9. scanf ("%d",&n);
  10. printf ("Vvedite massiv\n");
  11. for (i=0;i<n;i++)
  12. for (j=0;j<n;j++)
  13. scanf ("%lf",&a[i][j]);
  14. for (i=0;i<n;i++)
  15. c+=a[i][n-1-i];
  16. min=c;
  17. printf("%4.1f\n",c);
  18. getch();
  19. }

Решение задачи: «Найти минимальную сумму из сумм элементов диагоналей матрицы, параллельных побочной»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int main ()
  4. {
  5. double a[20][20];
  6. double mins, sumgiag;
  7. int n, i, k, j;
  8. printf("Zadaite razmer massiva\n");
  9. scanf ("%d",&n);
  10. printf ("Vvedite massiv\n");
  11. for (i=0;i<n;i++)
  12. {
  13.     for (j=0;j<n;j++)
  14.         scanf ("%lf",&a[i][j]);
  15. }
  16.  
  17. sumgiag = 0;
  18. mins = a[0][0];
  19.  
  20. --n;
  21.  
  22. for(j = 0; j <= 1; ++j)
  23.     for(k = n*j+j; k <= (j + 1)*n; ++k)
  24.     {
  25.         printf("Giagonal %2d: ", k+1);   // можно убрать
  26.         for(i = (n*j + (1-j)*k); i >= j*(k-n); --i)
  27.         {
  28.             printf("%3.1f ", a[i][k-i]); // можно убрать если не нужен вывод элементов диагоналей
  29.             sumgiag += a[i][k-i];
  30.         }
  31.             printf("\n");
  32.             if ( mins > sumgiag) mins = sumgiag;
  33.             sumgiag = 0;
  34.     }
  35.  
  36. printf("MinSumDiag = %3.1f\n",mins);
  37.  
  38. return 0;
  39. }

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

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы