Само задание: В одномерному массиве, состоящем из 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]
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 рублей. Мне легче самому разобраться уже, чем платить.
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; }