C/C++

Товарищи программисты,помогите решить задачу для 1 курса .

Спал на парах,теперь не имею представления о решении..в данный момент все бы ничего , все зачеты под 80 и одна инфа портит зачётку,кто есть хороший человек,отзовись.. Если что решайте любую...
#include <algorithm>
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
string base_to_base(const int value, int base, int conv) {
const string n = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const auto length = n.length();
if (base < 2 || base > length) return "Error \'base\': Invalid radix value.";
if (conv < 2 || conv > length) return "Error \'conv\': Invalid radix value.";
auto x = to_string(value);
auto max = *max_element(x.begin(), x.end());
auto pos = n.find(max);
if (pos >= base) return "Error: The value and its number system are incompatible.";
auto i = static_cast<int>(x.length()) - 1;
int s = 0;
int p = 0;
while (i >= 0) {
auto m = n.find(x[i]);
auto k = static_cast<int>(pow(base, p));
s += m * k;
++p;
--i;
}
if (conv != 10) {
string box;
while (s) {
box.push_back(n[s % conv]);
s /= conv;
}
return string(box.rbegin(), box.rend());
}
return to_string(s);
}
int main() {
int value;
int base;
int conv;
do {
cout << ">>> ";
cin >> value >> base >> conv;
cout << "<<< " << base_to_base(value, base, conv) << '\n';
} while (value >= 0 && value < 256);
system("pause > nul");
}
Umyt **
Umyt **
61 467
Лучший ответ
/* 1 */
#include <stdio.h>
#include <string.h>

void revers(char * num)
{
int len = strlen(num);
char tmp;
for(int x = len -1, y = 0; x > y; x--, y++)
{
tmp = num[x];
num[x] = num[y];
num[y] = tmp;
}
}

void to_other_system(int N, char * num, const int sys)
{
int i = 0;
while(N)
{
int tmp = N % sys;
if(tmp < 10)
{
num[i] = tmp + '0';
}
else
{
num[i] = 'A' + tmp - 10;
}
N /= sys;
i++;
}
num[i] = '\0';
revers(num);
}

int main()
{
unsigned N;
do
{
printf("Введите число (0-255): ");
scanf("%u", &N);
} while(N > 255);
char num[9];
to_other_system(N,num,2);
printf("В двоичной системе: %s\n",num);
to_other_system(N,num,3);
printf("В троичной системе: %s\n",num);
to_other_system(N,num,8);
printf("В восьмиричной системе: %s\n",num);
to_other_system(N,num,16);
printf("В шестнадцатиричной системе: %s\n",num);

return 0;
}