3.cpp 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #include <iostream>
  2. using namespace std;
  3. int** create_matrix(int rows, int cols){ // создание матрицы
  4. int **matrix = new int *[rows]; // создание массива matrix с размером rows
  5. for (int i = 0; i < rows; i++){ // цикл от 0 до rows
  6. matrix[i] = new int [cols]; // создание массива с размером cols в текущем элементе
  7. }
  8. return matrix; // возвращение созданной матрицы
  9. }
  10. void input_matrix_elements(int **matrix, int rows, int cols){ // ввод элементов матрицы
  11. cout << endl << "Input elements of matrix: " << endl;
  12. for (int i = 0; i < rows; i++){
  13. for (int j = 0; j < cols; j++){
  14. cin >> matrix[i][j];
  15. }
  16. cout << endl;
  17. }
  18. }
  19. void output_matrix(int **matrix, int rows, int cols){ // вывод элментов матрицы
  20. for (int i = 0; i < rows; i++){
  21. for (int j = 0; j < cols; j++){
  22. cout << matrix[i][j] << "\t";
  23. }
  24. cout << endl;
  25. }
  26. }
  27. int elements_counting(int **matrix, int rows, int cols){ // подсчёт суммы элементов
  28. int sum = 0; // создание переменной sum
  29. // цикл на прохождение матрицы
  30. for (int i = 0; i < rows; i++){
  31. for (int j = i + 1; j < cols; j++){
  32. sum += matrix[i][j];
  33. }
  34. }
  35. return sum;
  36. }
  37. void delete_matrix(int **matrix, int iterations){ // удаление матрицы
  38. for (int i = 0; i < iterations; i++){ // цикл от 0 до iterations
  39. delete[] matrix[i]; // удаление текущего элемента матрицы
  40. }
  41. delete[] matrix; // удаление матрицы
  42. }
  43. int main(){
  44. int rows, cols; // строки и столбцы матрицы
  45. int sum; // переменная суммы
  46. // ввод размера матрицы
  47. cout << "Input rows of matrix: " << endl;
  48. cin >> rows;
  49. cout << "Input cols of matrix: " << endl;
  50. cin >> cols;
  51. // если размер меньше 0, то завершаем программу
  52. if ((rows < 1) || (cols < 1)){
  53. cout << "Size cannot be less than 1." << endl;
  54. return 0;
  55. }
  56. // инициализация матрицы с указанными размерами
  57. int **matrix = create_matrix(rows, cols);
  58. // ввод матрицы
  59. input_matrix_elements(matrix, rows, cols);
  60. // вывод матрицы
  61. cout << "Entered matrix: " << endl;
  62. output_matrix(matrix, rows, cols);
  63. // если количество столбцов меншье 2, то значит, что слагаемых для посчёта нет
  64. if (cols < 2){
  65. cout << endl << "There are no summands." << endl;
  66. delete_matrix(matrix, rows);
  67. return 0;
  68. }
  69. // подсчёт элементов
  70. sum = elements_counting(matrix, rows, cols);
  71. // вывод
  72. cout << endl << "Sum of elements above the main diagonal: " << sum << endl;
  73. // очистка ОЗУ
  74. delete_matrix(matrix, rows);
  75. return 0;
  76. }