//Дан одномерный массив целых чисел. Требуется упорядочить его таким образом, чтобы сначала шли все отрицательные числа, затем нули, затем положительные числа, но взаимный порядок отрицательных и положительнвх чисел не изменился. //Например, из массива //0, -2, 5, -4, 20, 0, 10, -2 //должен получиться массив //-2, -4, -2, 0, 0, 5, 20, 10. //Дополнительный массив не использовать. //http://spaces.ru/forums/?r=16764730&link_id=478588&p=1&sid=::sid::&tp=1 #include using namespace std; int main(){ int a[] = { 5,-2,-2,-5,0,0,0,-4}; int iter = 0; for (int i = 0; i < sizeof(a) / sizeof(int); i++){ int j = i; while (a[j]<0&&(a[j - 1]>-1) || (a[j] == 0 && a[j - 1]>0)){ swap(a[j], a[j - 1]); j--; } } for (int i = 0; i < sizeof(a) / sizeof(int); i++) cout << a[i] <<" "; cin.get(); return 0; }