task22
unknown
c_cpp
2 years ago
1.7 kB
11
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