Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 23.04.2016
Сообщений: 28

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

21.11.2016, 22:48. Показов 1188. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо переделать данный код, под динамический массив используя функции malloc и free
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main()
{
 int i, n, a[10], s=0, k=0;
  cout<< "Input n=";
  cin>>n;
   cout << "Input elements ="<<endl;
   for (i=0; i<n;i++)
   {
       cin>> a[i];
       if ((a[i]>0) && (a[i]%5==0)) s=s+a[i], k=k+1;
   }
   cout << "S=" << s << " K=" << k;
   return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.11.2016, 22:48
Ответы с готовыми решениями:

Переделать под динамический массив
Добавлено через 31 минуту #include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; class str{ char a; public: str(); ...

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

Нужно переделать код под функции (одномерный массив)
«Однoмерные маcсивы», оформить каждый пункт задания в виде функции. Все необходимые данные для функций должны передаваться им в качестве...

4
114 / 112 / 62
Регистрация: 15.03.2013
Сообщений: 561
Записей в блоге: 5
21.11.2016, 23:01
Лучший ответ Сообщение было отмечено zer077 как решение

Решение

Наверно так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <Windows.h>
using namespace std;
int main()
{
    int i, n,  s = 0, k = 0;
    int *a = (int*)malloc(10*sizeof(int)); // Динамически выделяем память под массив
    cout << "Input n=";
    cin >> n;
    cout << "Input elements =" << endl;
    for (i = 0; i<n; i++)
    {
        cin >> a[i];
        if ((a[i]>0) && (a[i] % 5 == 0)) s = s + a[i], k = k + 1;
    }
    cout << "S=" << s << " K=" << k;
    free(a);    // Удаляем динамически выделенную память.
    system("pause");
    return 0;
}
1
1 / 1 / 0
Регистрация: 23.04.2016
Сообщений: 28
21.11.2016, 23:07  [ТС]
ящюр, Все работает! Спасибо! А сможете еще немного помочь? Надо переделать еще один код под динамический массив, с использованием функций new и delete. Извиняюсь, если код плохо написан
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
#include <iostream> 
using namespace std;
int main()
{
setlocale (LC_CTYPE, "rus");
int n,i,k=0;
double a[100],max=a[0],p=1,s=0,x=0;
cout<<"Введите количество элементов массива: ";
cin>>n;
cout<<"\nВводите элементы массива:"<<endl;
for (i=0;i<n;i++) 
{
    cin>>a[i];
    if (a[i]>max) {max=a[i]; k=i;} 
    if (a[i]<0) {p=p*a[i];} 
}
for (i=0;i<k;i++) 
{
    if (a[i]>0) {s=s+a[i];}
}
cout<<"\nМаксимальный элемент массива: a["<<k<<"]="<<max<<endl;
cout<<"Сумма положительных элементов массива, расположенных до максимального элемента="<<s<<endl;
cout<<"Произведение отрицательных элементов массива="<<p<<endl;
cout<<"\nМассив с измененным порядком элементов на обратный:"<<endl;
 
for (i = 0; i < n/2; i++)     
  {x = a[i]; a[i] = a[n-1-i]; a[n-1-i] = x;}                         
 
for (i = 0; i < n; i++) 
  {cout<<"a["<<i<<"]="<<a[i]<<endl;}
 
return 0;
}
0
114 / 112 / 62
Регистрация: 15.03.2013
Сообщений: 561
Записей в блоге: 5
21.11.2016, 23:30
Лучший ответ Сообщение было отмечено zer077 как решение

Решение

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
#include <iostream> 
using namespace std;
int main()
{
    setlocale(LC_CTYPE, "rus");
    int n, i, k = 0;
    double *a;
    a = new double[100];
    // !!!!!! Значение a[0] равно рандомному значению !!!!!!
    // a[0] = 0;
    double max = a[0], p = 1, s = 0, x = 0;
 
    cout << "Введите количество элементов массива: ";
    cin >> n;
    cout << "\nВводите элементы массива:" << endl;
    for (i = 0; i<n; i++)
    {
        cin >> a[i];
        if (a[i]>max) { max = a[i]; k = i; }
        if (a[i]<0) { p = p*a[i]; }
    }
    for (i = 0; i<k; i++)
    {
        if (a[i]>0) { s = s + a[i]; }
    }
    cout << "\nМаксимальный элемент массива: a[" << k << "]=" << max << endl;
    cout << "Сумма положительных элементов массива, расположенных до максимального элемента=" << s << endl;
    cout << "Произведение отрицательных элементов массива=" << p << endl;
    cout << "\nМассив с измененным порядком элементов на обратный:" << endl;
 
    for (i = 0; i < n / 2; i++)
    {
        x = a[i]; a[i] = a[n - 1 - i]; a[n - 1 - i] = x;
    }
 
    for (i = 0; i < n; i++)
    {
        cout << "a[" << i << "]=" << a[i] << endl;
    }
    delete[]a;
    return 0;
}
Добавлено через 2 минуты
Обращаю внимание, что при динамически выделяемой памяти переменные имеют рандомное значение !!! Если нужно значение 0, то нужно присваивать значение принудительно (строка 10).
1
1 / 1 / 0
Регистрация: 23.04.2016
Сообщений: 28
21.11.2016, 23:34  [ТС]
ящюр, Понял, спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2016, 23:34
Помогаю со студенческими работами здесь

Переделать в динамический массив
Помогите переделать программу:)Массивы должны быть динамическими.И можно её написать на начальном уровне)С++ #include &lt;cstdlib&gt; ...

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

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

Переделать массив в динамический(классы)
Сделал программу с перегрузкой операторов, но со статическим массивом. Переделайте, пожалуйста в динамический, ибо у меня нифига не...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru