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

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

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

Есть задание: Дана квадратная вещественная матрица размерности n. Найти сумму неотрицательных элементов: выше побочной диагонали; ниже главной диагонали.
Вот написал для этого задания код. Какие нужно задать условия , чтобы выбрать елементы выше побочной и ниже главной. В коде там стоят знаки вопроса.
#include <stdio.h>
int main()
{
    int i=0, j=0, x=0, y=0, z=0;
    printf("Kvadratnaya matritsa vida x*x\n");
    printf("Vvedite x: ");
    scanf("%d", &x);
    int s[x][x];
    for(i=0; i<x; i++)
    {
        for(j=0; j<x; j++)
        {
            printf("\nVvedite element S[%d][%d]: ", i, j);
            scanf("%d", &(s[i][j]));
          }
    }
    for (i=0; i<x; i++)
    {
        for(j=0;j<x; j++)
        {
            if (????) 
            {
                y+=s[i][j];
                s[i][j]=y;
            }
            else if(????)
            {
                z+=s[i][j];
                s[i][j]=z;
            } 
        }
    }
    printf("Symma nuje glavnoi: %d\n", y);
    printf("Symma vushe pobochnoi: %d\n", z);
return 0;
}

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

textual
Листинг программы
//фрагмент кода
for(...)
{
  for(j=0;j!=x-counter;j++) // на первой строке матрицы мы должны дойти до s[0][3];
  {                                 // на второй до s[1][2] , на третей  s[2][1] и т.д.
    if(s[i][j]>=0)               // [U] а столбец дикрементируется  за счет counter++;[/U]
    z+=s[i][j];
  }
 counter++;
}

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

В этом фрагменте кода реализуется функция, которая находит сумму неотрицательных элементов матрицы выше побочной диагонали и ниже главной диагонали. Вот список действий:

  1. Входные данные: матрица s и её размер x.
  2. Переменная i инициализируется значением 0, а переменная j - значением 0.
  3. Начальное значение переменной counter равно 0.
  4. Первый вложенный цикл начинается. Переменная j итерируется от 0 до x-counter-1.
  5. В каждой итерации внутреннего цикла проверяется, больше ли значение элемента s[i][j] нуля. Если это так, то к переменной z прибавляется значение этого элемента.
  6. После завершения внутреннего цикла переменная counter увеличивается на 1.
  7. После завершения внешнего цикла переменная i увеличивается на 1.
  8. Если i меньше x, то циклы повторяются.
  9. По завершении циклов возвращается значение переменной z.

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


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

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

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