Из статического массива в массив с использованием указателей (C++)

276
16 ноября 2017, 04:39

Доброго времени суток. Есть код ниже, который нужно переделать с использованием указателей. Т.е. я понимаю, что тут написано, но переделать под указатели - не в моих силах. Пытался сделать своими силами, но вышло совсем не правильно. Прошу помощи.

#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
    system("color F0");
    int first = 10, second = 10, summ, temp, i, array1[10];
    for (i = 0; i < 10; i++)
        array1[i] = rand() % 10 - 5;
    for (i = 0; i < 10; i++)
        cout << endl << array1[i];
    if (array1[0] > 0)
        summ = array1[0];
    else summ = -array1[0];
    for (i = 1; i < 10; i++)
    {
        if (array1[i] >= 0)
            temp = array1[i];
        else
            temp = -array1[i];
        if (summ < temp)
            summ = temp;
    }
    cout << endl;
    cout << "Max element: " << summ;
    i = -1;
    do
    {
        i++;
        if (array1[i] > 0)
            first = i;
    }
    while ((array1[i] <= 0) && (i < 10));
    do
    {
        i++;
        if (array1[i] > 0)
            second = i;
    }
    while ((array1[i] <= 0) && (i < 10));
    if ((second == 10) || (first == 10))
        cout << "-----" << endl;
    else
    {
        summ = 0;
        for (i = first; i <= second; i++)
            summ = summ + array1[i];
        cout << endl;
        cout << "Sum: " << summ;
    }
}
Answer 1

В вашем варианте по сути все, что нужно сделать - заменить

int first=10, second=10,summ,temp,i, array1[10];

на

int first=10, second=10,summ,temp,i, *array1 = new int[10];

и добавить перед последней фигурной скобкой

delete [] array1;

Как таковой, динамическим массив - т.е. массив, меняющий свой размер - у вас не нужен. Здесь просто использован массив в динамической памяти...

READ ALSO
Дерево не удаляется

Дерево не удаляется

Посмотрите на свои последние две строкиВначале Вы зануляете указатель, а потом удаляете данные по нему, то есть, по null

246
помогите! Написание кода по масивам на Borland C++ Builder 6.0 [требует правки]

помогите! Написание кода по масивам на Borland C++ Builder 6.0 [требует правки]

В одномерном масиве, что состоит из n целих елементов что вводяться с клавиатуры, вычислить суму модулей елементов масива разположеных до максимального...

263
Вызов функций в функции С++

Вызов функций в функции С++

В этом коде использую структурыКод написаный без структур отработал с подобным вызовом:

286
Организация кода js

Организация кода js

Есть функция :

357