Найти сумму положительных элементов под главной диагональю - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д