Найти сумму положительных элементов под главной диагональю - C (СИ)
Формулировка задачи:
В данной действительной квадратной матрице порядка N*N. Найти : сумму положительных элементов под главной диагональю.
Решение задачи: «Найти сумму положительных элементов под главной диагональю»
textual
Листинг программы
/*В данной действительной квадратной матрице порядка N*N. Найти : сумму положительных элементов под главной диагональю.*/ #include <stdio.h> #include <locale.h> #include <stdlib.h> int main(int argc, char** argv[]) { int i,j,m,n,k,autogen; setlocale(LC_ALL, "RUS"); printf("Введите количество элементов стороны квадратной матрицы:"); scanf("%d",&m); n=m; while(1){ printf("Сгенерировать массив автоматически ?(1-Да , 0-Нет):"); scanf("%d",&autogen); switch(autogen) { case 0: puts("Вы выбрали не генерировать массив."); break; case 1: puts("Вы выбрали авто генерациию массива."); break; default: puts("Неправильный ввод."); continue; } if(autogen==0||autogen==1) { break; } } int str_sum; int A[m][n]; if(autogen){ for (i = 0; i < m; i++ ){ for (j=0; j<n; j++){ A[i][j]=-20 + rand() %80;//заполняем матрицу сгенерированными элементами } } } else{ for (i = 0; i < m; i++ ){ for (j=0; j<n; j++){ A[i][j]=-20 + rand() %80;//заполняем матрицу сгенерированными элементами printf("Введите элемент [%d][%d]=", i,j); scanf("%d",&A[i][j]); } } } printf( "Полученный массив:\n" ); str_sum=0; for ( i = 0; i < m; i++ ) { for(k=0;k<i;k++){ if(A[i][k]>0) str_sum+= A[i][k]; } for ( j = 0; j < n; j++ ) { printf( "[%d][%d]=%d ", i, j, A[i][j] ); } printf( "\n"); //printf( "\n Cумма положительных элементов строки расположенных ниже главной диагонали: %d \n", str_sum ); printf( "\n"); } printf( "\nCумма положительных элементов строки расположенных ниже главной диагонали: %d \n", str_sum ); }
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Ввод количества элементов стороны квадратной матрицы с помощью функции scanf.
- Переменная autogen инициализируется значением 0.
- Вывод сообщения о том, что матрица не будет сгенерирована.
- Если autogen равно 0 или 1, то выполняется выход из цикла.
- Инициализация массива A.
- Если autogen равно 0, то происходит заполнение матрицы с помощью функции scanf.
- Если autogen равно 1, то происходит автоматическое заполнение матрицы с помощью генератора случайных чисел.
- Вывод сообщения о полученном массиве.
- Инициализация переменной str_sum значением 0.
- Проход по всем элементам матрицы с помощью двух вложенных циклов.
- Если элемент A[i][k] больше 0, то к переменной str_sum прибавляется значение этого элемента.
- Вывод значения элемента матрицы с помощью функции printf.
- Вывод значения переменной str_sum.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д