0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 13
1

Нужно переделать статический массив в динамический

10.01.2015, 11:11. Показов 1437. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста! Нужно переделать статический массив в динамический.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include "stdafx.h"
#include "stdio.h"
#include "iostream"
#include "iomanip"
using namespace std;
 
int main()
{
    const int size = 10;
    double arr[size];
    double sum;
    double min;
    int i, j;
    int _tmain(int argc, _TCHAR* argv[])
 
 
        // формирование массива
;for (i = 0; i < size; i++)
        {
        setlocale(LC_ALL, "Russian");
            cout << "arr[" << i << "]=";
            cin >> arr[i];
        }
 
        // эхо-печать массива
        cout << "Введенный массив" << endl;
        for (i = 0; i < size; i++)
        {
            cout << i << " " << setprecision(3) << arr[i] << endl;
        }
 
        // поиск минимального элемента
        for (i = 0, min = arr[0]; i < size; i++)
            if (arr[i] < min)
                min = arr[i];
 
        // поиск первого положительного элемента
        for (i = 0; i < size && arr[i] <= 0; i++)
            ;
        sum = 0; // если нет вообще положительных элементов
 
        //поиск последнего положительного элемента
        if ((i < size - 2) && (arr[i]>0)) // а есть ли смысл?
        {
            for (j = size - 1; j >= 0 && arr[j] <= 0; j--)
                ;
            if ((arr[j] > 0) && (--j > i))
                while (j > i)
                {
                // сумма элементов между первым и последним положительным
                sum += arr[j--];
                }
        }
 
        for (i = j = size - 1; i >= 0; --i)
        {
            if (arr[i] != 0)
            {
                if (i != j)
                    arr[j] = arr[i];
                --j;
            }
        }
        for (i = 0; i <= j; i++) // заполним начало нулями
            arr[i] = 0;
 
        // печать нового массива
        cout << endl;
        cout << "Новый массив" << endl;
        for (i = 0; i < size; i++)
        {
            cout << i << " " << setprecision(3) << arr[i] << endl;
        }
        cout << "Минимальный элемент =" << setprecision(3) << min << endl;
        cout << "Сумма между первым и последним положительными элементами = ";
        cout << setprecision(3);
        cout << sum << endl;
        system("pause");
        return 0;
    }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2015, 11:11
Ответы с готовыми решениями:

Переделать статический массив в динамический
Помогите пожалуйста переделать статический массив в динамический #include &lt;iostream&gt; #include...

Переделать статический массив в динамический
Помогите переделать статический массив в динамический #include &lt;stdio.h&gt; #include &lt;conio.h&gt;...

Переделать статический массив в динамический
Помогите переделать статический массив в динамический. #include &lt;iostream&gt; #include &lt;cstdlib&gt;...

Переделать статический массив структур в динамический
Имею структуру из 8 эл-ов (массивов чаров и 2 подструктуры). Имею исходные данные (5 штук, строк с...

6
Модератор
Эксперт С++
13491 / 10747 / 6405
Регистрация: 18.12.2011
Сообщений: 28,681
10.01.2015, 11:37 2
Цитата Сообщение от rog3r Посмотреть сообщение
C++
1
2
3
4
5
int main() 
{ 
     const int size = 10; double arr[size]; 
     double sum; double min; int i, j; 
     int _tmain(int argc, _TCHAR* argv[])
// что Вы хотели сказать последней (пятой) строчкой (14 в исходном коде)?
А чтобы массив стал динамическим достаточно
C++
1
 double arr[size];
заменить на
C++
1
 double* arr=new double[size];
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 13
10.01.2015, 12:54  [ТС] 3
мне нужно
C++
1
const int size = 10;
заменить так, чтобы я сам мог вводить количество массивов (оно сейчас постоянное и равно 10)
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
10.01.2015, 12:55 4
Лучший ответ Сообщение было отмечено rog3r как решение

Решение

C++
1
2
3
int size = 0;
std::cin >> size;
double * arr = new int[size];
0
3 / 3 / 1
Регистрация: 25.12.2014
Сообщений: 63
10.01.2015, 13:02 5
C++
1
2
3
4
5
6
int _tmain(int argc, _TCHAR* argv[])
 
 
        // формирование массива
;for (i = 0; i < size; i++)
        {
Зачем вам в функции int main() внутри вот это:
C++
1
int t_main(int argc, _TCHAR* argv[])
Думаю, что знаю, зачем. Наверно, должно было быть так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int _tmain(int argc, _TCHAR* argv[]) 
{
    int size;
    cin>>size;//ввод с клавиатуры
    double* arr=new double[size]; //объявление динамического массива размером в size
    double sum;
    double min;
    int i, j;
 
 
 
        // формирование массива
for (i = 0; i < size; i++)
/* .... */
 
}
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 13
10.01.2015, 13:24  [ТС] 6
Цитата Сообщение от unit37 Посмотреть сообщение
Зачем вам в функции int main() внутри вот это:
Код C++
1
int t_main(int argc, _TCHAR* argv[])
Он из шаблона наверно остался и незаметно спустился вниз

Добавлено через 15 минут
Цитата Сообщение от Тамика Посмотреть сообщение
double * arr = new int[size];
только вместо int нужно double. Спасибо!
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
10.01.2015, 13:27 7
rog3r, у Вас в коде double, потому я и использовала этот тип.
Не за что.
0
10.01.2015, 13:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2015, 13:27
Помогаю со студенческими работами здесь

Переделать динамический массив на статический массив
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int dim, counter_1...

Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже -->
Слова английского текста рассортировать по возрастанию количества заданной буквы в слове. Слова с...

Динамический и статический массив
Подскажите, в чем разница. Имеется статический массив, который просто задается: long mas = { 0 };...

Автоматический, статический, динамический массив
Всем хай! Сходу к делу! Мне казалось, что автоматический и статический массив - синонимы, т е...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru