• Программа перевода из 10 в 2 и 8 систему счисления(С++)?

    longclaps
    @longclaps
    подразумевается, что все числа положительные
    используй типизацию, а не подразумевай

    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);
        }
    }
    Ответ написан
    3 комментария