Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
dred3377
1 / 1 / 0
Регистрация: 21.01.2016
Сообщений: 122
1

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

26.01.2019, 19:41. Просмотров 528. Ответов 7
Метки нет (Все метки)

Ребят помогите с задачей я не программист нужно лабу сделать
В одномерном массиве, состоящем из n вещественных элементов, вычислить:

минимальный положительный элемент массива;

преобразить массив таким образом, чтобы сначала располагались все элементы,
равные нулю, а потом – все остальные.
Язык С++
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2019, 19:41
Ответы с готовыми решениями:

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

Преобразовать массив таким образом чтобы сначала располагались все элементы равные нулю а потом остальные
#include <iostream> #include <stdlib.h> #include <time.h> using namespace std; int...

Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом - все остальные
Помогите, пожалуйста. как составить код в с++. Дан целочисленный массив размера N. Преобразовать...

Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные
#include <iostream> #include <stdlib.h> #include <time.h> #include <cmath> using namespace...

Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать?
#include <iostream> #include <stdlib.h> #include <time.h> #include <cmath> using namespace...

7
ReDoX
438 / 326 / 170
Регистрация: 01.07.2015
Сообщений: 1,162
26.01.2019, 19:52 2
Цитата Сообщение от dred3377 Посмотреть сообщение
минимальный положительный элемент массива
C++
1
*min_element(a, a + n);
Цитата Сообщение от dred3377 Посмотреть сообщение
преобразить массив таким образом, чтобы сначала располагались все элементы,
равные нулю, а потом – все остальные.
C++
1
2
3
4
for (int i = 0; i < n; ++i) {
  if (a[i] == 0)
    swap(a[pos++], a[i]);
}
начальное значение pos - первый ненулевой элемент

P.S. в min_element нужен соответствующий компаратор
0
dred3377
1 / 1 / 0
Регистрация: 21.01.2016
Сообщений: 122
26.01.2019, 19:58  [ТС] 3
ReDoX, Мне нужен исходный код что бы я его скопировал визуал студио и запустил и высветился консоль
0
ReDoX
438 / 326 / 170
Регистрация: 01.07.2015
Сообщений: 1,162
26.01.2019, 20:02 4
dred3377, а мне интересно писать код для настолько простых программ? Мне, например, нужно, чтобы кто-то включил голову и хоть чему-то научился. Если что-то не понятно в частях - какой компаратор и проч., то можно поговорить об этом, остальное - не нужно
0
26.01.2019, 20:02
dred3377
1 / 1 / 0
Регистрация: 21.01.2016
Сообщений: 122
26.01.2019, 20:03  [ТС] 5
ReDoX, Примерно вот так что бы была программа расписана
0
Миниатюры
Преобразовать массив так, чтобы сначала располагались все элементы, равные нулю, а потом все остальные  
Cortas
130 / 106 / 64
Регистрация: 14.03.2016
Сообщений: 353
Завершенные тесты: 5
26.01.2019, 20:23 6
Цитата Сообщение от ReDoX Посмотреть сообщение
чтобы кто-то включил голову и хоть чему-то научился.
Мне кажется ТС'у все равно на программировании, так же как и многим технарям на философию, к примеру. Человека сложно научить тому, чему он учиться не хочет.

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
#include <iostream>
#include <cmath>
 
using namespace std;
 
double drandom(int from_i, int to_i, int from_m, int to_m, int prec = 3)
{
    int integer, mantissa;
    integer = ( to_i == from_i ) ? 0 : rand() % (to_i - from_i + 1);
    mantissa = ( to_m == from_m ) ? 0 : rand() % (to_m - from_m + 1);
    return 
        double(integer + from_i) + double(mantissa + from_m) / pow(10, prec);
}
 
int main()
{
    //берем массив константного размера
    const size_t n = 10;
    double arr[n];
 
    double minPositive = -1.0;
    for(size_t i = 0; i < n; i++)
    {
        //заполняем его рандомными вещественными числами
        //(первые два числа - множество, в котором лежит 
        //целая часть; вторая пара чисел - множество, 
        //в котором лежат значения мантиссы; последнее
        //число - кол-во знак после запятой).
        arr[i] = drandom(-2, 2, 0, 4, 2);
        //тут же пытаемся найти минимальное положительное число
        if(( minPositive == -1.0 || arr[i] < minPositive ) && arr[i] >= 0) minPositive = arr[i];
    }
 
    //выпихиваем нули в перед
    for(size_t i = 0, j = 0; i < n; i++)
    {
        if(arr[i] == 0.0)
        {
            //если на j позиции и так ноль,
            //то зачем что-то менять
            if(i != j) swap(arr[i], arr[j]);
            j++;
        }
    }
    //выводим получившийся массив
    for(size_t i = 0; i < n; i++)
        cout << arr[i] << ' ';
    
    //выводим мин. полж. число, если оно есть
    if(minPositive == -1)
        cout << "No positive numbers";
    else
        cout << "Min positive number = " << minPositive;
    
    return 0;
}
0
dred3377
1 / 1 / 0
Регистрация: 21.01.2016
Сообщений: 122
26.01.2019, 22:43  [ТС] 7
Cortas, Согласен.Но это не наш профильный предмет.А скажите при запуске программы внизу есть ошибки, и правильно я ввожу в консоль данные?
0
Миниатюры
Преобразовать массив так, чтобы сначала располагались все элементы, равные нулю, а потом все остальные  
Cortas
130 / 106 / 64
Регистрация: 14.03.2016
Сообщений: 353
Завершенные тесты: 5
26.01.2019, 23:56 8
dred3377, скорее всего, компилятор ругается на функцию pow, попробуйте убрать библиотеку cmath
0
26.01.2019, 23:56
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2019, 23:56

Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает 1, а потом все остальные
привет всем) никак не могу придумать влгоритм для куска задачи: преобразовать массив таким...

Преобразовать массив, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом - остальные
Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не...

Преобразовать массив так, чтобы сначала располагались все положительные элементы, а потом отрицательные
Помогите пжлст решить задачу:cry: В одномерном массиве, состоящем из n целых эл-ов, вычислить:...


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

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

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