task22
unknown
c_cpp
2 years ago
1.7 kB
6
Indexable
#include <iostream> #include <locale.h> double** allocateMemSq(int n) { double** a = new double*[n]; for (int i = 0; i < n; i++) { a[i] = new double[n]; } return a; } void deleteMem(double** a, int n) { for (int i = 0; i < n; i++) { delete[] a[i]; } delete[] a; } double sumMainDiag(double** a, int n) { double sum = 0; for (int i = 0; i < n; i++) { sum += a[i][i]; } return sum; } double sumSideDiag(double** a, int n) { double sum = 0; for (int i = 0; i < n; i++) { sum += a[i][n-i-1]; } return sum; } double sumAboveDiag(double** a, int n) { double sum = 0; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { sum += a[i][j]; } } return sum; } double sumBelowDiag(double** a, int n) { double sum = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { sum += a[i][j]; } } return sum; } int main() { setlocale(LC_ALL, ""); int n; printf("Введите порядок матрицы: "); scanf_s("%d", &n); double** arr = allocateMemSq(n); printf("Введите элементы матрицы:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf_s("%lf", &arr[i][j]); } } printf("Сумма элементов на главной диагонали: %lf\nСумма элементов на побочной диагонали: %lf\nСумма элементов над главной диагональю: %lf\nСумма элементов под главной диагональю: %lf\n", sumMainDiag(arr,n), sumSideDiag(arr, n), sumAboveDiag(arr, n), sumBelowDiag(arr,n)); deleteMem(arr, n); }
Editor is loading...
Leave a Comment