C/C++

Cоставление и отладка программ работы с двумерными массивами. C++

Создать квадратный массив целых чисел из диапазона [-5;10]. Найти среднее арифметическое отрицательных элементов главной диагонали
#include <algorithm>
#include <iostream>
#include <random>
#include <iomanip>
using namespace std;
int main() {
const auto n = 8U;
int matrix[n][n];
const auto a = -5, b = 10;
uniform_int_distribution<> uid(a, b);
mt19937 gen{ random_device()() };
auto rand = [&] { return uid(gen); };
auto print = [](int x) { cout << setw(4) << x; };
for (auto& row : matrix) {
generate(begin(row), end(row), rand);
}
for (const auto& row : matrix) {
for_each(begin(row), end(row), print);
puts("");
}
puts("");
double sum = 0;
for (auto i = 0U; i < n; ++i) {
if (matrix[i][i] < 0) {
sum += matrix[i][i];
}
}
if (sum) {
cout << " average: " << sum / n << '\n';
} else {
puts("Not found!");
}
system("pause > nul");
}
SS
Sergey Schur
96 024
Лучший ответ
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;

int main(){
int n, sum = 0, count = 0, average;
cout<<"Vvedite razmer massiva -> ";
cin>>n;

int A[n][n];
//zapolnenie massiva A ot -10 do 10
for(int i=0;i<n;i++){
for(int j=0;j= 0 && A[i][j] <= 9){
cout<<" "<<A[i][j]<<" ";
}
else {
cout<<A[i][j]<<" ";
}
}
cout<<endl;
}

cout<<endl;
int j = 0;
for(int i=0;i<n;i++){
if(A[i][j] < 0){
sum = sum + A[i][j];
count++;
}
j++;
}
average = sum / count;
cout<<"Sr. arifmeti4eskoe = "<<average;
getch();
}