Is it possible to arrange the array made up of only 1\'s and 0\'s in descending order within one parse without using auxiliary array?
For example: Suppose you have an ar
How about recursion? Simple and elegant, as always.
void countAndRewrite(int arr[], size_t n, size_t *cone, size_t total)
{
if (n) {
if (arr[0])
++*cone;
countAndRewrite(arr + 1, n - 1, cone, total);
arr[0] = total - n < *cone;
}
}
int main()
{
int arr[] = { 0, 1, 0, 1, 1, 1, 0 };
size_t cone = 0;
countAndRewrite(arr, 7, &cone, 7);
for (size_t i = 0; i < 7; i++)
printf("arr[%zu] = %d\n", i, arr[i]);
return 0;
}