Загрузка...

Уплотнить массив С++

Тема в разделе C/C++ создана пользователем vladikprikol 25 дек 2017. 369 просмотров

  1. vladikprikol
    vladikprikol Автор темы 25 дек 2017 164 21 фев 2017
    Само задание:
    В одномерному массиве, состоящем из n действительных элементов, вычислить:
    1) номер минимального по абсолютному значению элемент массива;
    2) сумму абсолютных значений элементов массива, расположенных после первого отрицательного элемента.
    3) Уплотнить массив, удалив из него элементы значения которых находятся в интервале [a, b]. Освобожденный в конце массива элементы заполнить нулями.

    1 и 2 я сделал и 3 (некорректно работает).

    Код который вышел:
    #include "stdafx.h"
    #include <iostream>
    #include <conio.h>

    using namespace std;
    int main()
    {

    int sum = 0, pos = 0, j = 0;
    int n, a, b, i;
    int *Arr;
    int min = 15;
    int mini = 0;

    cout << "\n N =\n ";
    cin >> n;

    Arr = new int[n];

    for (int i = 0; i < n + 1; i++)
    {
    Arr = rand() % 20 - 10;
    cout << "x[" << i << "]=" << Arr << endl;
    if (abs(Arr) < min)
    {
    min = abs(Arr);
    mini = i;
    }

    }
    cout << endl;
    cout << "min=x[" << mini << "]=" << min << endl;
    for (int i = 0; i <= n; i++)
    {
    if (Arr < 0)
    {
    for (int j = i; j <= n; j++)
    {
    sum = sum + abs(Arr[j]);
    }
    break;
    }
    }
    cout << "sum=" << sum << endl;
    cout << " a-b: ";
    cin >> a >> b;


    for (int i = 0; i < n; i++)
    {
    if (abs(Arr[i])<a && abs(Arr[i])>b) { Arr[j] = Arr[i]; j++; }

    {
    for (j = i; j < n; j++)
    Arr[j] = Arr[j + 1];
    Arr[j] = 0;
    }
    }
    for (int i = 0; i < n; i++)
    cout << "x[" << i << "]=" << Arr[i] << endl;
    system("pause");
    return 0;
    }[/i][/i][/i][/i]
     
  2. bage64
    bage64 25 дек 2017 Шоп с товаром https://selly.gg/@bage64 42 23 дек 2017
    vladikprikol, это наверное сложно, зачем тебе это ?
     
  3. vladikprikol
    vladikprikol Автор темы 26 дек 2017 164 21 фев 2017
    Это не сложно, начинающий уровень. Просто я проебался. Это в уник задание.
     
  4. twilight777
    twilight777 26 дек 2017 :bitcoin: :tether: :eth: 200 13 май 2016
    50 руб и помогу)
     
  5. vladikprikol
    vladikprikol Автор темы 26 дек 2017 164 21 фев 2017
    for (int i = 0; i < n; i++)
    {
    if (abs(Arr[I])<a && abs(Arr[I])>b) { Arr[j] = Arr[I]; j++; }

    {
    for (j = i; j < n; j++)
    Arr[j] = Arr[j + 1];
    Arr[j] = 0;
    }
    }
    for (int i = 0; i < n; i++)
    cout << "x[" << i << "]=" << Arr[I] << endl;[/I][/I][/I][/I]

    [I][I][I][I][/I][/I][/I][/I]
    Тут чисто вот эту часть немного переделать, какие 50 рублей. Мне легче самому разобраться уже, чем платить.
     
  6. renameduser_185993
    vladikprikol,
    Привет. Создал еще 1н массив, заполнил нулями, ну и сам процесс. Оно?


    int[] Arr2 = new int[n];

    for (int i = 0; i < n; i++) {
    Arr2 = 0;
    }

    int d = 0;
    for (int i = 0; i < n; i++) {

    if (!((Arr < a) && (Arr > b))) {
    Arr2[d] = Arr;
    d++;
    }
    }
    Arr = Arr2;
    Arr2 = null;
    }
     
Загрузка...
Top