Форум программистов, компьютерный форум, киберфорум
Наши страницы

Не получается создать функцию с динамическим массивом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск элемента массива прямым и двоичным способом http://www.cyberforum.ru/cpp-beginners/thread1135844.html
Написать программу поиска элемента массива 2 способами: прямым и двоичным поиском. Массив нужно задать с помощью srand. Перед поиском массив должен быть отсортирован любым методом. Если можно...
C++ Как исправить ошибку с выводом и делением на 0 #include<stdio.h> #include<math.h> #pragma argsused int main(int argc, char* argv) {int i ; float x,a,b,F; printf("a="); scanf("%f" , & a); printf("b="); scanf("%f" , & b);... http://www.cyberforum.ru/cpp-beginners/thread1135839.html
C++ Класс Complex, реализация операций и перегрузки
Ребят подскажите пожалуйста в чём ошибка, задание таково : Комплексное число представляются парой действительных чисел (a,b), где а- действ часть а b-мнимая часть. Реализовать класс Complex для...
C++ Перевод из 10 в 2 систему счисления БЕЗ делений
Здравствуйте, помогите пожалуйста, написать программу перевода из десятичной в двоичную систему счисления без делений вот по этой блок схеме. Спасибо. вот картинка с блок-схемой Добавлено...
C++ Гаммирование с обратной связью (ГОСТ 28147-89) http://www.cyberforum.ru/cpp-beginners/thread1135792.html
Написал прогу по алгоритму, но столкнулся с проблемой, что расщифрованный текст не соответствует оригиналу. Почитал, говорят что расшифрование аналогично шифрованию. Но всё равно ничего не выходит. В...
C++ Определить попадание произвольной точки в заштрихованную область Всем привет! Имеется следующая задача: определить попадание произвольной точки в заштрихованную область (чертеж в прикрепленном файле) Написал программу: #include <conio.h> #include <iostream>... подробнее

Показать сообщение отдельно
don_keyhot
5 / 5 / 2
Регистрация: 02.04.2014
Сообщений: 60
03.04.2014, 16:12
Вам нужно из этой новой функции куда Вы собираетесь вставить код, вернуть указатель на массив Ar[]
поскольку указатель массива там уже другой, меняется в цикле
я толком не разбирался что делает этот Ваш участок,
для чего Вы перераспределяяете массив не знаю, по-моему там в цикле с присваиванием ошибка, но это сейчас не суть главное,
вот набросок, я вынес кусок кода в функцию int *re_arrange(int Ar[], int size = SIZE);

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
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <ctime>
#include <iomanip>
 
using namespace std;
 
const int SIZE = 90;
 
void Set(int mas[], int size = SIZE)
{
    for (int i = 0; i < size; i++)
        mas[i] = i + 1;
}
 
void Print(int mas[], int size = SIZE)
{
    for (int i = 0; i < size; i++)
    {
        if ((i+1)%10 == 0) cout << endl;
        cout << mas[i] << setw(3);
    }
}
 
int *re_arrange(int Ar[], int size = SIZE);
 
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    srand((int)time(NULL));
 
    int size = SIZE;
 
    int *Ar = new int[size];
 
    Set(Ar, size);
 
    //---->>>
    // как конкретно вот этот код из main поместить в отдельную функцию?
    // Мне нужно чтобы измененный размер массива и сам массив передавался из функции в main измененным
    Ar = re_arrange(Ar, size);
 
    Print(Ar, size);
 
    //<<<----
    delete [] Ar;
 
    cout << endl;
    
    system("pause");
    return 0;
}
 
int* re_arrange(int *Ar, int size)
{
    int a, b = 0;
    do
    {
        b++;
        cout << "b = " << b;
        
        a = rand() % size;
        cout << " a = " << a << endl;
        
        int *boof = new int[size];
        for (int i = 0, j = 0; i < size; i++)
        {
            if (i != a)
                boof[j] = Ar[i]; 
            j++;
        }
 
        cout << "Ar[a] = " << Ar[a] << setw(3) << endl;
        delete [] Ar;
        
        size--;
        Ar = new int[size];
        for (int i = 0; i < size; i++)
            Ar[i] = boof[i];
        
        delete [] boof;
        
        Print(Ar, size);
        cout << endl;
        system("pause");
 
    } while (b < SIZE);
 
 
    return Ar;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru