Hello everyone here. Im new and yes that is my homework im not going to lie.

I need to write a program that doen't exactly sort an array. I will give an example

If i have that array : 1,3,0,2,0,-1,0,-2,-4,0

After transformations... the same array must be -1,-2,-4,0,0,0,0,1,3,2

The numbers<0 in the left part

The numbers == 0 in the middle

The numbers > 0 after the nulls in the right part.

Okay here is the problem. I must use only one array.

I can do it to make the program to this point -1,-2,-4,0,0,0,0 but with the positive numbers i've got a big problem . Here is my code.

Code:

#include <iostream.h>
int main() {
const int K=10;
int array[K]={1,3,0,2,0,-1,0,-2,-4,0},i,b=0,m;
for(i=0;i<K;i++)
cout << array[i] << " ";
cout << endl;
for(i=0;i<K;i++)
if(array[i]<0) {
m=array[b];
array[b]=array[i];
array[i]=m;
b++;
}
for(i=b;i<K;i++)
if(array[i]==0) {
m=array[b];
array[b]=array[i];
array[i]=m;
b++;
}
for(i=0;i<K;i++)
cout << array[i] << " ";
cout << endl;
return 0;
}

and the output is

Code:

1 3 0 2 0 -1 0 -2 -4 0
-1 -2 -4 0 0 0 0 3 1 2

... 3 1 2 It must be 1 3 2.

Sorry for my english. Im not native.

I would be happy if you give me some ideas.

Please help me.