Найти сумму положительных элементов под главной диагональю - 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 );
    }

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

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

  1. Ввод количества элементов стороны квадратной матрицы с помощью функции scanf.
  2. Переменная autogen инициализируется значением 0.
  3. Вывод сообщения о том, что матрица не будет сгенерирована.
  4. Если autogen равно 0 или 1, то выполняется выход из цикла.
  5. Инициализация массива A.
  6. Если autogen равно 0, то происходит заполнение матрицы с помощью функции scanf.
  7. Если autogen равно 1, то происходит автоматическое заполнение матрицы с помощью генератора случайных чисел.
  8. Вывод сообщения о полученном массиве.
  9. Инициализация переменной str_sum значением 0.
  10. Проход по всем элементам матрицы с помощью двух вложенных циклов.
  11. Если элемент A[i][k] больше 0, то к переменной str_sum прибавляется значение этого элемента.
  12. Вывод значения элемента матрицы с помощью функции printf.
  13. Вывод значения переменной str_sum.

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


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

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

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