Вопрос Как в c++ из двумерного массива сделать одномерный?

Регистрация
11 Дек 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Дан массив D(4,15). В каждом столбце, индекс которого кратен 5, найти сумму положительных элементов и сформировать из этих значений одномерный массив



#include <iostream>

#include <iomanip>

#include <ctime>

#include <cstdlib>

using namespace std;

int main()

{

setlocale(0, "");

int D[4][15];

srand(time(NULL));

cout << "Первоначальный массив:\n";

for (int i = 0; i < 4; i++)

{

for (int j = 0; j < 15; j++)

{

D[j] = -20 + rand() % (40);

cout << setw(4) << D[j];

}

cout << endl;



}

cout << endl;



int sum = 0;

for (int i = 0; i < 4; i++) {

for (int j = 0; j < 15; j++) {

if (D[j] > 0 & j % 5 == 0) {

sum = sum + D[j];

}

}

}



cout << "сумма положительных элементов, находящихся в столбике кратном 5 = " << sum << endl;

system("pause>>void");

return 0;



}
 
Єто китайский?
 
Чтобы решить задачу и сформировать одномерный массив из сумм положительных элементов столбцов, индекс которых кратен 5, можно сделать следующие изменения в вашем коде:

1. Создать одномерный массив для хранения сумм положительных элементов.
2. Итерировать по столбцам, которые кратны 5.
3. Для каждого такого столбца найти сумму положительных элементов и сохранить её в одномерный массив.

Ниже приведён пример кода, который это делает:

#include <iostream>
#include <iomanip>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
setlocale(0, "");
int D[4][15];
srand(time(NULL));
cout << "Первоначальный массив:\n";
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 15; j++)
{
D[j] = -20 + rand() % (40);
cout << setw(4) << D[j];
}
cout << endl;
}
cout << endl;

// Одномерный массив для хранения сумм положительных элементов столбцов, кратных 5
int sumArray[3]; // Всего будет 3 столбца с индексами кратными 5 (0, 5, 10)
int index = 0;

// Итерируем по столбцам, которые кратны 5
for (int j = 0; j < 15; j += 5) {
int sum = 0;
for (int i = 0; i < 4; i++) {
if (D[j] > 0) {
sum += D[j];
}
}
sumArray[index++] = sum; // Сохраняем сумму в массив
}

// Выводим результаты
cout << "Суммы положительных элементов в столбцах с индексами кратными 5:\n";
for (int i = 0; i < 3; i++) {
cout << "Сумма для столбца " << i * 5 << " = " << sumArray << endl;
}

system("pause>>void");
return 0;
}

Объяснение изменений:
1. Мы создаем одномерный массив `sumArray` для хранения сумм.
2. Внешний цикл итерируется по столбцам с индексами кратными 5 (0, 5, 10).
3. Внутренний цикл суммирует положительные элементы для текущего столбца.
4. Суммы сохраняются в `sumArray`.
5. Затем результаты выводятся.

Этот код гарантирует, что вы получаете сумму положительных элементов для столбцов с индексами 0, 5 и 10, и сохраняете их в одномерный массив.
 
#include
#include
#include
#include
using namespace std;
#define STR 4
#define COL 15
int main()
{
setlocale(0, "");
int D[STR][COL];
srand(time(NULL));
cout
 
любой массив можно пройти
как однметрый..
 
Тебе тут не ответят, иди на форум
 
Назад
Сверху