Найти сумму неотрицательных элементов матрицы выше побочной диагонали и ниже главной диагонали - 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++;
}
Объяснение кода листинга программы
В этом фрагменте кода реализуется функция, которая находит сумму неотрицательных элементов матрицы выше побочной диагонали и ниже главной диагонали. Вот список действий:
- Входные данные: матрица
sи её размерx. - Переменная
iинициализируется значением 0, а переменнаяj- значением 0. - Начальное значение переменной
counterравно 0. - Первый вложенный цикл начинается. Переменная
jитерируется от 0 доx-counter-1. - В каждой итерации внутреннего цикла проверяется, больше ли значение элемента
s[i][j]нуля. Если это так, то к переменнойzприбавляется значение этого элемента. - После завершения внутреннего цикла переменная
counterувеличивается на 1. - После завершения внешнего цикла переменная
iувеличивается на 1. - Если
iменьшеx, то циклы повторяются. - По завершении циклов возвращается значение переменной
z.