Программа на с++ должна собирать из локальной матрицы глобальную но он не правильно считает массивы ggu и ggl. Массивы ig =[0 0 1 3 6 10 15], jg=[1 1 2 1 2 3 1 2 3 4 1 2 3 4 5], tr=[1 3 6 2 4 5]. int i, j, k; int* L = new int[6]; double* local_F = new double[6]; double** local_matr = new double* [6]; for (i = 0; i < 6; i++) { local_matr[i] = new double[6](); } // Инициализация локальных матриц и правой части for (k = 0; k < n2; k++) { local_matrix(k, local_matr, local_F, k * 7); for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { cout << local_matr[i][j] << " "; }cout << endl; } for (int i = 0; i < 6; i++) { L[i] = tr[k * 7 + i]; // Запись индексов элементов локальной матрицы } for (int i = 0; i < 6; i++) { int ibeg = L[i]; cout << "ibeg = " << ibeg << endl; for (int j = i + 1; j < 6; j++) { int iend = L[j]; cout << "iend = " << iend << endl; int h; if (ibeg < iend) { h = ig[iend]; while (jg[h] < ibeg && h < ig[n]) h++; // nn - длина jg ggl[h] += local_matr[i][j]; // Обновление глобальной матрицы ggu[h] += local_matr[j][i]; // Обновление глобальной матрицы } else { h = ig[ibeg]; while (jg[h] < iend && h < ig[n]) h++; // nn - длина jg ggl[h] += local_matr[i][j]; // Обновление глобальной матрицы ggu[h] += local_matr[j][i]; // Обновление глобальной матрицы } } di[ibeg] += local_matr[i][i]; // Обновление диагональных элементов } } C int i, j, k; int* L = new int[6]; double* local_F = new double[6]; double** local_matr = new double* [6]; for (i = 0; i < 6; i++) { local_matr[i] = new double[6](); } // Инициализация локальных матриц и правой части for (k = 0; k < n2; k++) { local_matrix(k, local_matr, local_F, k * 7); for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { cout << local_matr[i][j] << " "; }cout << endl; } for (int i = 0; i < 6; i++) { L[i] = tr[k * 7 + i]; // Запись индексов элементов локальной матрицы } for (int i = 0; i < 6; i++) { int ibeg = L[i]; cout << "ibeg = " << ibeg << endl; for (int j = i + 1; j < 6; j++) { int iend = L[j]; cout << "iend = " << iend << endl; int h; if (ibeg < iend) { h = ig[iend]; while (jg[h] < ibeg && h < ig[n]) h++; // nn - длина jg ggl[h] += local_matr[i][j]; // Обновление глобальной матрицы ggu[h] += local_matr[j][i]; // Обновление глобальной матрицы } else { h = ig[ibeg]; while (jg[h] < iend && h < ig[n]) h++; // nn - длина jg ggl[h] += local_matr[i][j]; // Обновление глобальной матрицы ggu[h] += local_matr[j][i]; // Обновление глобальной матрицы } } di[ibeg] += local_matr[i][i]; // Обновление диагональных элементов } }