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

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

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

В данной действительной квадратной матрице порядка N*N. Найти : сумму положительных элементов под главной диагональю.

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

textual
Листинг программы
  1. /*В данной действительной квадратной матрице порядка N*N. Найти : сумму положительных элементов под главной диагональю.*/
  2. #include <stdio.h>
  3. #include <locale.h>
  4. #include <stdlib.h>
  5.  
  6. int main(int argc, char** argv[])
  7. {
  8. int i,j,m,n,k,autogen;
  9. setlocale(LC_ALL, "RUS");
  10. printf("Введите количество элементов стороны квадратной матрицы:");
  11. scanf("%d",&m);
  12. n=m;
  13.  
  14. while(1){
  15. printf("Сгенерировать массив автоматически ?(1-Да , 0-Нет):");
  16. scanf("%d",&autogen);
  17. switch(autogen)
  18. {
  19. case 0:
  20. puts("Вы выбрали не генерировать массив.");
  21. break;
  22.  
  23. case 1:
  24. puts("Вы выбрали авто генерациию массива.");
  25. break;
  26.  
  27. default:
  28. puts("Неправильный ввод.");
  29. continue;
  30. }
  31. if(autogen==0||autogen==1)
  32.     {
  33.     break;
  34.     }
  35. }
  36.  
  37. int str_sum;
  38. int A[m][n];
  39. if(autogen){
  40.      for (i = 0; i < m; i++ ){
  41.     for (j=0; j<n; j++){
  42.             A[i][j]=-20 + rand() %80;//заполняем матрицу сгенерированными элементами
  43.     }
  44.  
  45. }
  46. }
  47. else{
  48.     for (i = 0; i < m; i++ ){
  49.     for (j=0; j<n; j++){
  50.  
  51.             A[i][j]=-20 + rand() %80;//заполняем матрицу сгенерированными элементами
  52.  
  53.             printf("Введите элемент [%d][%d]=", i,j);
  54.             scanf("%d",&A[i][j]);
  55.        }
  56.        }
  57. }
  58. printf( "Полученный массив:\n" );
  59. str_sum=0;
  60.   for ( i = 0; i < m; i++ ) {
  61.     for(k=0;k<i;k++){
  62.      if(A[i][k]>0)
  63.      str_sum+= A[i][k];
  64.     }
  65.     for ( j = 0; j < n; j++ )
  66.     {
  67. printf( "[%d][%d]=%d ", i, j, A[i][j] );
  68.     }
  69.     printf( "\n");
  70.     //printf( "\n Cумма положительных элементов строки расположенных ниже главной диагонали: %d \n", str_sum );
  71.     printf( "\n");
  72.   }
  73.   printf( "\nCумма положительных элементов строки расположенных ниже главной диагонали: %d \n", str_sum );
  74.     }

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

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы