Задача
Ввести одномерный массив. Например:
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; }