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

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

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

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

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

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

Показать ответ
Ответ:
Nastenkapu
Nastenkapu
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 существуют и имеют нужные разрешения для чтения/записи.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота