C/C++

Помогите Программирование на Си (одномерные массивы)

#include <stdio.h>
#include <stdlib.h>
void show(int* box, size_t n) {
size_t i;
for (i = 0; i < n; ++i) printf("%3i", box[i]);
puts("");
}
void stable_partition(int* box, size_t n) {
int* tmp = (int*)malloc(n * sizeof(int));
size_t i;
size_t m = 0;
for (i = 0; i < n; ++i) if (box[i] >= 0) {
tmp[m] = box[i];
++m;
}
for (i = 0; i < n; ++i) if (box[i] < 0) {
tmp[m] = box[i];
++m;
}
for (i = 0; i < n; ++i) box[i] = tmp[i];
free(tmp);
}
int main(void) {
int a[] = { 2, -6, 0, 8, -3, 9, 1, -5, 0, 5, 0, 4, -7, 7 };
size_t n = sizeof(a) / sizeof(a[0]);
size_t i, j;
long long m = 1;
int s = 0;
show(a, n);
for (i = 1; i < n; i += 2) m *= a[i];
printf("Product: %lli\n", m);
i = 0;
while (a[i]) if (++i == n) break;
if (++i >= n) puts("Not found!");
else {
j = n - 1;
while (a[j]) if (--j == 0) break;
if (i >= j) puts("Not found!");
else {
do s += a[i]; while (++i != j);
printf("Sum: %i\n", s);
}
}
stable_partition(a, n);
show(a, n);
system("pause > nul");
return 0;
}
Андрей Шарнин
Андрей Шарнин
52 612
Лучший ответ
Андрей Баранов а можете это на с ++ сделать ?