Формирование двумерного массива из одномерного
1 минут
Задача🔗︎
Ввести одномерный массив. Например:
2 9 4 -2 9 8 6 3 0 -4 5 1
Сформировать двумерный массив по заданному правилу:
1 5 -4 0
3 6 8 9
-2 4 9 2
В двумерном массиве найти значение минимального элемента. Вывести массивы и результат на экран.
Решение на C++🔗︎
#include <iostream>
#define ARRAY_ROWS 3
#define ARRAY_COLUMNS 4
#define ARRAY_SIZE (ARRAY_ROWS * ARRAY_COLUMNS)
void input_data(int *array);
void array_proc(int *array_first, int **array_second);
void print_min_value(int **array);
void print_arrays(int *array_first, int **array_second);
int main()
{
// ввод данных
int *array_first = new int [ARRAY_SIZE];
input_data(array_first);
// формирование двумерного массива по правилу
int **array_second = new int *[ARRAY_ROWS];
for (int i = 0; i < ARRAY_ROWS; i++) {
array_second[i] = new int [ARRAY_COLUMNS];
}
array_proc(array_first, array_second);
// вывод результата
print_arrays(array_first, array_second);
print_min_value(array_second);
return 0;
}
void input_data(int *array)
{
for (int i = 0; i < ARRAY_SIZE; i++) {
std::cout << "Введи элемент №" << i << ": ";
std::cin >> array[i];
}
}
void array_proc(int *array_first, int **array_second)
{
int i, j;
for (i = 0; i < ARRAY_ROWS; i++) {
for (j = 0; j < ARRAY_COLUMNS; j++) {
array_second[i][j] = array_first[ARRAY_ROWS * ARRAY_COLUMNS - i * ARRAY_COLUMNS - j - 1];
}
}
}
void print_min_value(int **array)
{
int i, j, min = array[0][0];
for (i = 0; i < ARRAY_ROWS; i++) {
for (j = 0; j < ARRAY_COLUMNS; j++) {
if (min > array[i][j]) {
min = array[i][j];
}
}
}
std::cout << "Минимальное значение: " << min << std::endl;
}
void print_arrays(int *array_first, int **array_second)
{
int i, j;
std::cout << "Одномерный массив: ";
for (i = 0; i < ARRAY_SIZE; i++) {
std::cout << array_first[i] << " ";
}
std::cout << std::endl;
std::cout << "Двумерный массив: " << std::endl;
for (i = 0; i < ARRAY_ROWS; i++) {
std::cout << " ";
for (j = 0; j < ARRAY_COLUMNS; j++) {
std::cout << array_second[i][j] << " ";
}
std::cout << std::endl;
}
std::cout << std::endl;
}