C/C++
Помогите матрица С++
Надо найти среднее арифметическое побочной диагонали
Побочная диагональ -- это из левого нижнего угла в правый верхний.
В левом нижнем углу значение второго индекса максимально, первого минимально.
В правом верхнем углу значение первого индекса максимально, второго минимально.
Допустим, есть квадратная матрица A[n][n];
Создаём переменную типа float для суммы.
float moyen = 0.0;
И прогоняем матрицу через два цикла
for(int x = 0; x < n; x++)
{
for(int y = 0; y < n; y++)
{
if(x == n - y - 1)
{
moyen += A[x][y];
}
}
}
Среднее арифметическое получится при делении суммы на n -- размер квадратной матрицы
cout << moyen / const_cast<float>(n) << endl;
Если будут вопросы -- задавайте мне или другим участникам проекта.
В левом нижнем углу значение второго индекса максимально, первого минимально.
В правом верхнем углу значение первого индекса максимально, второго минимально.
Допустим, есть квадратная матрица A[n][n];
Создаём переменную типа float для суммы.
float moyen = 0.0;
И прогоняем матрицу через два цикла
for(int x = 0; x < n; x++)
{
for(int y = 0; y < n; y++)
{
if(x == n - y - 1)
{
moyen += A[x][y];
}
}
}
Среднее арифметическое получится при делении суммы на n -- размер квадратной матрицы
cout << moyen / const_cast<float>(n) << endl;
Если будут вопросы -- задавайте мне или другим участникам проекта.
Isgender Orazbayew
а как оно вычисляет в if что это побочная диагональ?
Isgender Orazbayew
спасибо
Матрица откуда берётся? Если не с потолка, а, например, с рандомно формируемой матрицей размера n×n, задаваемой в виде двумерного динамического массива, тогда можно так:
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int l, m, n;
double s = 0;
cout << "\033[35mn: \033[31m";
cin >> n;
cout << endl;
int **A = new int *[n];
for (l = 0; l < n; l++)
A[l] = new int [n];
srand(time(nullptr));
for (l = 0; l < n; l++)
{
for (m = 0; m < n; m++)
{
A[l][m] = rand() % 100;
if (l + m == n - 1)
{
cout << "\033[31m";
s += A[l][m];
}
else cout << "\033[35m";
cout << setw(3) << A[l][m];
}
cout << endl;
}
cout << "\nSum = " << s << "\nAverage = "
<< s / n << endl;
for (l = 0; l < n; l++) delete [] A[l];
delete [] A;
cin.get();
cin.get();
return 0;
}
Ещё вариант:
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int k, l, m, n;
double s = 0;
cout << "n: ";
cin >> n;
k = n - 1;
cout << endl;
int **A = new int *[n];
for (l = 0; l < n; l++)
{
A[l] = new int [n];
for (m = 0; m < n; m++)
cin >> A[l][m];
}
cout << endl;
for (l = 0; l < n; l++)
{
for (m = 0; m < n; m++)
{
if (l + m == k) s += A[l][m];
cout << setw(5) << A[l][m];
}
cout << endl;
}
cout << "\nSum = " << s << "\nAverage = "
<< s / n << endl;
for (l = 0; l < n; l++) delete [] A[l];
delete [] A;
cin.get();
cin.get();
return 0;
}
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int l, m, n;
double s = 0;
cout << "\033[35mn: \033[31m";
cin >> n;
cout << endl;
int **A = new int *[n];
for (l = 0; l < n; l++)
A[l] = new int [n];
srand(time(nullptr));
for (l = 0; l < n; l++)
{
for (m = 0; m < n; m++)
{
A[l][m] = rand() % 100;
if (l + m == n - 1)
{
cout << "\033[31m";
s += A[l][m];
}
else cout << "\033[35m";
cout << setw(3) << A[l][m];
}
cout << endl;
}
cout << "\nSum = " << s << "\nAverage = "
<< s / n << endl;
for (l = 0; l < n; l++) delete [] A[l];
delete [] A;
cin.get();
cin.get();
return 0;
}

#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int k, l, m, n;
double s = 0;
cout << "n: ";
cin >> n;
k = n - 1;
cout << endl;
int **A = new int *[n];
for (l = 0; l < n; l++)
{
A[l] = new int [n];
for (m = 0; m < n; m++)
cin >> A[l][m];
}
cout << endl;
for (l = 0; l < n; l++)
{
for (m = 0; m < n; m++)
{
if (l + m == k) s += A[l][m];
cout << setw(5) << A[l][m];
}
cout << endl;
}
cout << "\nSum = " << s << "\nAverage = "
<< s / n << endl;
for (l = 0; l < n; l++) delete [] A[l];
delete [] A;
cin.get();
cin.get();
return 0;
}

Isgender Orazbayew
мне надо на вводимую матрицу, но спасибо
Isgender Orazbayew
только если можно без setw, пока не разобрался как он работает)
Isgender Orazbayew
спасибо, извините что поздно заметил)
Ищите сами
Похожие вопросы
- Помогите новичку с программированием и матрицами C++
- Помогите разобраться с кодом. На основании чего происходит приоритет перемножения матриц
- Помогите пожалуйста с 2меррый Матрицами .В языке С
- Найти максимальный элементы в строке матрицы
- Помогите написать литсинг на C++ Дана целочисленная квадратная матрица. Определить: ↓↓↓
- Чёт не пойму, как сделать рандомные значения матрицы через массив, прошу доработать, пж прогу!
- Помогите добавить ввод чисел в массив матрицы на языке Си
- Матрицы, массивы C++
- Программирование матриц на С++
- Работа с матрицами. Нужно найти сумму элементов каждой строки. Помогите пожалуйста ????????