Advertisement
kiraventom

Настя Лаба

Dec 18th, 2017
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.99 KB | None | 0 0
  1. // Задана матрица Z(6,6). Элемент главной диагонали на каждой строке заменить суммой элементов,
  2. // расположенных за ним (если элемент на главной диагонали не равен нулю).
  3. // Элементы главной диагонали вывести в массив B.
  4. // Вывести исходную и преобразованную матрицы, полученный массив.
  5.  
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <locale.h>
  10. #include <math.h>
  11. #include <time.h>
  12.  
  13. #define ON 1
  14. #define OFF 0
  15.  
  16. #define DEBUG OFF
  17.  
  18. #if DEBUG == ON
  19.     #define debug(msg) printf ("%s\n", msg);
  20. #else
  21.     #define debug(msg)
  22. #endif
  23.  
  24. void main() {
  25.     setlocale (LC_ALL, "Russian");
  26.  
  27.     int matrix [6][6], B[6];
  28.     unsigned i, j, k;
  29.  
  30.     srand (time (NULL) );
  31.  
  32.     puts ("Исходная матрица");
  33.     for (i = 0; i < 6; i++){
  34.         for (j = 0; j < 6; j++){
  35.             matrix [i][j] = rand() %100;
  36.             printf ("%3i ", matrix [i][j]);
  37.         }
  38.         puts ("");
  39.     }
  40.  
  41.     for (i = 0; i < 6; i++){
  42.         for (j = 0; j < 6; j++){
  43.             if ( (i == j) && (matrix [i][j] != 0) ) {
  44.                 matrix[i][j] = 0;
  45.                 // Обнуляем для того, чтобы старое значение элемента не прибавилось к сумме последующих,
  46.                 // т.к. в задании просят "заменить" значение
  47.                 for (k = j+1; k < 6; k++){
  48.                 // От следующего на строке (после эл. с главной диаг.) до конца строки
  49.                     matrix [i][j] = matrix [i][j] + matrix [i][k];
  50.                 }
  51.                 B [i] = matrix [i][j];
  52.             }
  53.         }
  54.     }
  55.  
  56.     puts ("Полученная матрица");
  57.     for (i = 0; i < 6; i++){
  58.         for (j = 0; j < 6; j++){
  59.             printf ("%3i ", matrix [i][j]);
  60.         }
  61.         puts ("");
  62.     }
  63.  
  64.     puts ("Массив значений главной диагонали");
  65.     for (i = 0; i < 6; i++){
  66.         printf ("%3i ", B [i]);
  67.     }
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement