C/C++

Помогите в с++ с матрицей

#include <iostream>
#include <ctime>
using namespace std;

int main() {
int matrix[50][50];
int row, column;
cout << "Введите количество строк матрицы (не более 50): ";
cin >> row;
cout << "Введите количество столбцов матрицы (не более 50): ";
cin >> column;

srand(time(0));
for (int i = 0; i < row; ++i) {
for (int j = 0; j < column; ++j)
matrix[i][j] = rand() % 51 - 25;
// матрица заполняется случайными числами от -25 до +25
}

int sum = 0;
for (int i = 0; i < row; ++i) {
if (matrix[i][0] < 0) sum += matrix[i][0];
}

cout << "Полученная сумма: " << sum << "\n";
return 0;
}
Тарас Гудым
Тарас Гудым
6 243
Лучший ответ
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <random>
using namespace std;
int main() {
const size_t n = 7, m = 3;
int matrix[n][m];
uniform_int_distribution<> uid(-100, 100);
mt19937 gen{ random_device()() };
auto rand = [&] { return uid(gen); };
auto print = [](int x) { cout << setw(6) << x; };
for (auto& row : matrix) generate(row, row + m, rand);
for (auto& row : matrix) {
for_each(row, row + m, print);
puts("");
}
puts("");
auto sum = 0;
for (auto& row : matrix) if (row[0] < 0) sum += row[0];
cout << " Sum: " << sum << '\n';
system("pause > nul");
}
RK
Roman Kartashov
74 037
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,j,N,M, Sum;
/*размерность массива: */
printf("\n Columns count = ");
scanf("%d",&M);
printf("\n Strings count = ");
scanf("%d",&N);
int **A = (int**)malloc(N * sizeof(int*));
for (i = 0; i < N; i++)
A[i] = (int*)malloc(M * sizeof(int));

/* заполнение массива случайными значениями: */
srand(time(NULL));
for (i = 0; i < N; i++)
for (j = 0; j < M; j++)
{
if(rand()%2==0)
A[i][j] = rand()%10;
else
A[i][j]=(-1)*rand()%10;
}
/*расчёт суммы отрицат. значений: */
Sum=0;
for (int j = 0; j < N; j++)
{
if(A[j][0]<0)
Sum+=A[j][0];
}

//вывод массива:
printf("\nArray A:\n");
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
if(A[i][j]>=0)
printf(" %d ", A[i][j]);
else
printf("%d ", A[i][j]);
printf("\n");
}
printf("\n\n");
//вывод суммы первого столбца:
printf("Sum=%d",Sum);
printf("\n\n");

for (i = 0; i < M; i++)
free(A[i]);
free(A);
return 0;
}