Написать програмный код С++ ЗАДАЧА : Значения элементов двумерного динамического массива из n строк и m столбцов скопировать в одномерный динамический массив размером m*n. Копирование проводить по

строкам начиная с первой;

 Исходные данные ввести из текстового файла;

 Результат вывести на экран и в текстовый файл;

 Программа должна содержать комментарии;

aygun256 aygun256    3   23.12.2022 08:00    2

Ответы
оникс999 оникс999  23.12.2022 08:01

#include <iostream>

#include <fstream> // Для работы с файлами

#include <cstdlib> // Для функции exit()

using namespace std;

int main()

{

// Открываем файл для чтения

ifstream input_file("input.txt");

if (!input_file.is_open()) {

// Если файл не удалось открыть, выводим сообщение об ошибке и завершаем программу

cerr << "Error: unable to open input file" << endl;

exit(1);

}

// Считываем количество строк и столбцов

int n, m;

input_file >> n >> m;

// Создаем двумерный динамический массив

int** array = new int*[n];

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

array[i] = new int[m];

}

// Считываем значения элементов из файла

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

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

input_file >> array[i][j];

}

}

// Создаем одномерный динамический массив

int* new_array = new int[n * m];

// Копируем значения элементов из двумерного массива в одномерный

int k = 0;

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

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

new_array[k++] = array[i][j];

}

}

// Закрываем файл

input_file.close();

// Открываем файл для записи

ofstream output_file("output.txt");

if (!output_file.is_open()) {

// Если файл не удалось открыть, выводим сообщение об ошибке и завершаем программу

cerr << "Error: unable to open output file" << endl;

exit(1);

}

// Выводим значения элементов одномерного массива в файл

for (int i = 0; i < n * m; i++) {

output_file << new_array[i] << " ";

}

output_file << endl;

// Закрываем файл

output_file.close();

// Освобождаем выделенную память

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

delete[] array[i];

}

delete[] array;

delete[] new_array;

return 0;

}

Не забудьте также проверить, что файлы input.txt и output.txt существуют и имеют нужные разрешения для чтения/записи.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика