Здравствуйте, начинающий в С++,необходимо было написать программу : "Разработать и написать программу перевода целых чисел из p-ичной системы счисления в десятичную. Основание р (1 < p < 16 ) и само число, состоящее не более чем из 6 цифр, вводятся с клавиатуры. Ниже приведен рекомендуемый вид экрана во время выполнения программы: Перевод заданного числа из р-ичной ССч в десятичную ССч Введите значение р (1<p<=16): 8 Введите число для перевода: 2471 Результат: 2471(8) ---> 1337(10)" Написал код,вы скажете,что криво,я соглашусь,но пытался я его доделать,как надо,чтобы всё работало,но не получилось избавиться от двух проблем....Помогите,пожалуйста...Первая проблема: при вводе p=16 и числа в 16-чной форме,например, 4D2,это число не переводит правильно,да и ваще переводит коряво...думал полдня....не додумался=((( Вторая проблема в проверке,которую я додумать ну нифига не могу...Проверка на принадлежность числа системе счисления... ну,напрмиер вводим p=13 и переводимое число 12 или 13,то выводило бы ошибку... или напрмиер p=9 и число 91,тоже должно выдать ошибку... Вот кривой код... : #include <iostream> using namespace std; int main() { int p; cout << "Translation of a given number of p-ary SSch in decimal SSch\n "; cout << "Please enter the p (1<p<=16) : "; cin >> p; char buf[50]; cout << "Please enter the number for translation : "; cin >> buf; int i; i=0; while (buf!=0) { if (buf<'0' || buf>'9') { buf= buf-'A'+10; } else { buf= buf-'0'; } i++; } int m,trans; m=1; trans=0; while (i > 0) { i--; trans=trans+(buf-'0')*m; m=m*p; } cout << buf; cout << "(" << p << ")" <<" ---> "; cout << trans << "(" << "10" << ")\n" ; return 0; } Помогите...заранее спасибо хоть за какой-то совет. P.S гуглил,читал,но не допоняла моя башка...