Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
16 / 16 / 9
Регистрация: 16.03.2012
Сообщений: 437
1

Динамический массив из вещественных чисел

31.12.2015, 14:03. Просмотров 882. Ответов 6
Метки нет (Все метки)

Добрый день!

Как заполнить динамический массив вещственными числами, учитывая что пользователь должен вводить их сам или по выбору автоматически заполнить массив, а затем нужно массив преобразовать (!) (а не упорядочить) массив, то при перемещении элементов в какую-то одну другую часть массива они должны сохранять исходный порядок по отношению друг к другу. Т.е., если массив, например, был такой: {-5.2, 3, -1.5, 10, 2} в итоге должен выглядеть так: {3, 10, 2, -5.2, -1.5}. "

C++
1
2
3
4
5
6
7
cout << "Random number array is: ";
            
    srand(time(NULL));
    for (int i = 0; i < n; i++) {
        arr[i] = rand() / float(RAND_MAX)*24.f + 1.f;
        cout << arr[i] << " ";
    }
А вывожу массив так, но он упорядочен получается. Как сделать по заданию, не понятно.
C++
1
2
3
4
5
6
cout << endl << "Sorted array: ";
        for (int i = 0; i<n; i++)
        {
            cout << arr[i] << " ";
        }
        cout << endl;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.12.2015, 14:03
Ответы с готовыми решениями:

Двумерный динамический массив вещественных чисел
Набросал код: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt;...

Создать динамический массив вещественных чисел.
Создать динамический массив вещественных чисел. (С++) На каждый вопрос создавайте по одной теме...

Одномерный массив (Ввести массив из 10 вещественных чисел.Найти сумму чисел,стоящих на чётных местах)
Ввести массив из 10 вещественных чисел.Найти сумму чисел,стоящих на чётных местах. Обьясните что...

Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел
Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел больших исходных...

6
Dimension
576 / 445 / 222
Регистрация: 08.04.2014
Сообщений: 1,709
31.12.2015, 14:14 2
положительные элементы переместить в начало ,отрицательные после после положительных
0
Хитрая блондиночка $)
1460 / 974 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
31.12.2015, 14:22 3
А дополнительные массивы использовать разрешено?
0
16 / 16 / 9
Регистрация: 16.03.2012
Сообщений: 437
31.12.2015, 14:23  [ТС] 4
Hikari, да, можно.
0
Хитрая блондиночка $)
1460 / 974 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
31.12.2015, 14:37 5
Тогда предлагаю такое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
cout << "Random number array is: ";
int neg[n]={0},pos[n]={0},nNeg=0,nPos=0;            
    srand(time(NULL));
    for (int i = 0; i < n; i++) {
        arr[i] = rand() / float(RAND_MAX)*24.f + 1.f;
        if(arr[i]>=0) pos[nPos++]=arr[i]; else
         if(arr[i]<0) neg[nNeg++]=arr[i]; else
        cout << arr[i] << " ";
    }
 
    for(i=0;i<nPos;i++) arr[i]=pos[i];
    for(j=0;j<nNeg;j++,i++) arr[i]=neg[j];
 
    for (int i = 0; i < n; i++)        cout << arr[i] << " ";
1
16 / 16 / 9
Регистрация: 16.03.2012
Сообщений: 437
31.12.2015, 14:52  [ТС] 6
Hikari, спасибо, но немного не понятно как сделать так что-бы при перемещении элементов в какую-то одну другую часть массива они должны сохранять исходный порядок по отношению друг к другу?
Если массив был таким{-5.2, 3, -1.5, 10, 2}, а в итоге стал таким: {3, 10, 2, -5.2, -1.5}.
0
Хитрая блондиночка $)
1460 / 974 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
31.12.2015, 14:54 7
Ой! Маленькая ремарочка: В моем примере динмассивами еще не пахнет...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cout << "Random number array is: ";
int *neg,*pos,nNeg=0,nPos=0;            
    srand(time(NULL));
    for (int i = 0; i < n; i++) {
        arr[i] = rand() / float(RAND_MAX)*24.f + 1.f;
         if(arr[i]>=0) nPos++; else nNeg++;
        cout << arr[i] << " ";
    }
 
neg=new int[nNeg];  pos=new int[nPos];
for(i=0,j=0,p=0;i<n;i++) if(arr[i]<0) neg[j++]=arr[i]; else pos[k++]=arr[i];
 
    for(i=0;i<nPos;i++) arr[i]=pos[i];
    for(j=0;j<nNeg;j++,i++) arr[i]=neg[j];
 
delete[] neg; delete[] pos;
 
    for (int i = 0; i < n; i++)        cout << arr[i] << " ";
Цитата Сообщение от SlashX6 Посмотреть сообщение
как сделать так
а мой пример разве это не делает?
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.12.2015, 14:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Переделать массив целых чисел на массив вещественных чисел
помогите переделать этот код: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #define RANGE 20 int...

Создать динамический массив из вещественных чисел и написать функции, выполняющие операции с этими числами
Создать динамический массив, наполнить его вещественными числами и создать функции, выполняющие...

Ввести в динамический массив 100 вещественных чисел, вывести их в обратном порядке, освободить память
Задание: Ввести в динамический массив 100 вещественных чисел, вывести их в обратном порядке,...

Создать динамический массив из 15 вещественных
20.2 Создать динамический массив из 15 вещественных чисел. Удалить из него все элементы с четными...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.