Нужно Переделать

  • Автор темы BoMA
  • Дата начала
B

BoMA

#1
Память под хранение элементов массива должна выделяться динамически с помощью оператора new (освобождаться – с помощью delete), размер выделяемой памяти должен определяться программой автоматически по содержимому файла (а не вводиться пользователем с клавиатуры).
Весь ввод/вывод (файл, консоль) – с помощью потоков. Имя файла с элементами массива должно вводиться пользователем с клавиатуры. Результат операций открытия потока и выделения памяти должен проверяться, и в случае неудачи должны выводиться соответствующие сообщения.



Дан массив y1, ... , y20.
Сформировать массив Z1, ... , Z20, элементы которого соответствуют элементам yi , сдвинутым на одну позицию влево, т.е.
Z1 = y2 ; Z2 = y3 ; ... ; Z19 = y20 ; Z20 = y1. Умножить все элементы Zi на 2.


C++:
#include <iostream>
#include <fstream>

using namespace std;

int main() {
const int size=20;
int arrY[size];
int arrZ[size];

ifstream ifs("input.txt");
int i=0;

// Заполняем массив из файла
while(i < size) {
if(ifs)
ifs >> arrY[i];
else
arrY[i]=0;
i++;
}
ifs.close();

// Заполняем массив Z элементами массива Y, сдвинутыми на 1 влево, и добавляем 2 к каждому элементу
int *pY = arrY+1;
int *pZ = arrZ;
i=1;
while(i < size) {
*pZ++=(*pY++)*2;
i++;
}
*pZ=*arrY*2;

// Выводим массив Z
for(int i=0; i<size; i++)
cout<<arrZ[i]<<endl;

return 0;

}
нужно добавить динамическую память как???