
В двумерном динамическом массиве найти сумму всех элементов нечётной строки.


Ответы на вопрос

Двумерный динамический массив задается пользователем. Программа находит сумму элементов всех нечетных строк.
Если требовался иной алгоритм, сообщите об этом.
Код программы приведен на языке C++.
Тестирование проводилось в среде разработки Visual Studio 2017, v.15.7.5.
int main()
{
setlocale(LC_ALL, "Russian");
int N, M, i, j, SumOddRows = 0;
cout << "Введите кол-во строк матрицы:";
cin >> N;
cout << "Введите колво столбцов матрицы: ";
cin >> M;
int** arr = new int*[N];
cout << endl;
cout << "Заполните матрицу " << N << 'х' << M << endl;
for (i = 0; i < N; i++)
arr[i] = new int[M];
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
cout << "Введите число: ";
cin >> arr[i][j];
}
}
cout << "Исходная матрица: " << endl;
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
if (i % 2 == 0)
SumOddRows += arr[i][j];
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << "Сумма элементов в неч. строках: " << SumOddRows << endl;
system("pause");
return 0;
}



Для нахождения суммы всех элементов нечетной строки в двумерном динамическом массиве, вам нужно выполнить следующие шаги:
- Определить размеры массива и выделить память под него.
- Заполнить массив случайными или заданными значениями.
- Найти и сложить элементы нечетных строк.
Давайте предположим, что у вас уже есть функция для выделения памяти под двумерный динамический массив allocate_2d_array
и функция для генерации случайных чисел get_random_number
.
Пример кода на языке C++:
cpp#include <iostream>
#include <cstdlib> // Для функции rand()
#include <ctime> // Для функции time()
// Функция для выделения памяти под двумерный динамический массив
int** allocate_2d_array(int rows, int cols) {
int** array = new int*[rows];
for (int i = 0; i < rows; ++i) {
array[i] = new int[cols];
}
return array;
}
// Функция для генерации случайного числа в диапазоне [min, max]
int get_random_number(int min, int max) {
return rand() % (max - min + 1) + min;
}
int main() {
// Задайте размеры массива
int rows, cols;
std::cout << "Введите количество строк: ";
std::cin >> rows;
std::cout << "Введите количество столбцов: ";
std::cin >> cols;
// Выделите память под массив
int** array = allocate_2d_array(rows, cols);
// Заполните массив случайными числами от 1 до 100
srand(time(0)); // Инициализация генератора случайных чисел
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
array[i][j] = get_random_number(1, 100);
}
}
// Найдите сумму элементов нечетных строк
int sum = 0;
for (int i = 0; i < rows; i += 2) { // Перебираем только нечетные строки (индексация с 0)
for (int j = 0; j < cols; ++j) {
sum += array[i][j];
}
}
// Выведите результат
std::cout << "Сумма элементов нечетных строк: " << sum << std::endl;
// Освободите память
for (int i = 0; i < rows; ++i) {
delete[] array[i];
}
delete[] array;
return 0;
}
Обратите внимание, что в приведенном выше коде индексация строк и столбцов начинается с 0. Если вам нужна индексация с 1, просто замените i += 2
на i = 1
, чтобы перебирать только четные строки.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili