подразумевается, что все числа положительные
используй типизацию, а не подразумевай
double_sys, eight_sys - почти 100% дублирование кода
int *arr = new int[count];
в этой задаче максимально необходимый размер строки можно прикинуть и использовать статическую переменную
#include <iostream>
using namespace std;
void to_any_number_system(unsigned num, unsigned radix) {
// соблюдение условия 2 <= radix <= 16 на совести вызывающего
const char digits[] = "0123456789abcdef";
char buf[sizeof(num) * 8], *p = buf; // двоичное представление num влезет
do *p++ = digits[num % radix]; while (num /= radix);
do cout << *--p; while (p > buf);
cout << endl;
}
int main() {
unsigned n = 0xffffffff; // чтобы мало не казалось )
for (unsigned r = 2; r <= 16; r++) {
cout << (r > 9 ? "" : " ") << r << '\t';
to_any_number_system(n, r);
}
}