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

Тема в разделе "C/C++/C#", создана пользователем BoMA, 6 окт 2011.

  1. BoMA

    BoMA Гость

    Память под хранение элементов массива должна выделяться динамически с помощью оператора 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;

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

Поделиться этой страницей