2. Ввести в массив n произвольных чисел (n меньше =30) Отсортировать отрицательные по убыванию, положительные – по возрастанию, оставив отрицательные на местах, принадлежащих отрицательным, а положительные – на местах, принадле...

2. Ввести в массив n произвольных чисел (n<=30) Отсортировать отрицательные по убыванию, положительные – по возрастанию, оставив отрицательные на местах, принадлежащих отрицательным, а положительные – на местах, принадлежащих положительным. Вывести на экран исходный и полученный массивы. Дополнительных массивов не использовать.
Гость
Ответ(ы) на вопрос:
Гость
В C++ работает этот код. Других языков практически не знаю. #include int main() {     using namespace std;     const int n = 8;     double Arr[n] = { 122.3, 11.4, -34.2, 17.8, -25.5, -54, 34, -43};     for (int i = 0; i < n; ++i)         cout << Arr[i] << "  ";     cout << endl;     double max, min;     for (int i = 0; i < n; ++i)     {         if (Arr[i] < 0)         {             int inegmax = i;             for (int j = i; j < n; ++j)                 if (Arr[j] < 0)                     if (Arr[j] >= Arr[inegmax])                         inegmax = j;             max = Arr[inegmax];             Arr[inegmax] = Arr[i];             Arr[i] = max;         }         else         {             int iposmin = i;             for (int j = i; j < n; ++j)                 if (Arr[j] >= 0)                     if (Arr[j] < Arr[iposmin])                         iposmin = j;             min = Arr[iposmin];             Arr[iposmin] = Arr[i];             Arr[i] = min;         }     }     for (int i = 0; i < n; ++i)         cout << Arr[i] << "  ";     cout << endl;     return 0; }
Не нашли ответ?
Ответить на вопрос
Похожие вопросы