Сумма элементов ряда двумерного массива
Полное задание - Создать матрицу размером 5 х 5 с помощью генератора целых Как сделать без такого кол-ва if-ов? Спасибо числа, вывести ее на экран. Найти сумму элементов в строках, которые содержат только положительные числа.
#include <iostream>
using namespace std;
int main()
{
const int ROWS = 5;
const int COLS = 5;
int arr[ROWS][COLS];
int sum_first = 0, sum_second = 0, sum_third = 0, sum_fourth = 0, sum_fifth = 0;
//srand(time(NULL));
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
arr[i][j] = rand() % 21 - 5;
}
}
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
cout << arr[i][j] << "\t";
}
cout << endl;
}
for (int k = 0; k < ROWS; k++)
{
if (arr[0][k] > 0)
sum_first += arr[0][k];
else if (arr[0][k] <= 0)
{
sum_first = 0;
break;
}
if (arr[1][k] > 0)
sum_second += arr[1][k];
else if (arr[1][k] <= 0)
{
sum_second = 0;
break;
}
}
cout << sum_first << endl;
cout << sum_second << endl;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Ну, например, так:
int main()
{
const int ROWS = 5;
const int COLS = 5;
int arr[ROWS][COLS];
int sum[ROWS][2]{};
//srand(time(NULL));
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
cout << (arr[i][j] = rand() % 21 - 5) << "\t";
sum[i][0] += arr[i][j];
if (arr[i][j] < 0) sum[i][1] = 1;
}
cout << endl;
}
for (int i = 0; i < ROWS; i++)
{
cout << "Row " << i << ": ";
if (sum[i][1])
cout << "has negative numbers\n";
else
cout << "sum = " << sum[i][0] << endl;
}
}