Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

перевод в систему счисления

19K
05 октября 2006 года
ZiG2006
4 / / 05.10.2006
Помогите найти ошибку в коде котором я написал на C++. Мне нужно перевести из 10 системы счисления в заданную, которая меньше 10-ой.
Код:
#include<iostream.h>
int delenie(int a, int n)
{
    int b = 0;
    while(a>n)
    {
        a=a-n;
        b++;
    }
    return b;
}
void main()
{
    int a,i,n,v,b[25];
    cout << "Vvedit nomer sistemu s4isleniy\n";
    cin >> n;
    cout << "Vvedit 4islo\n";
    cin >> a;
    for(i=0;a>=n;i++)
    {
        b=a%n;
        a=delenie(a,n);
    }
    if(a!=0)
    {
        cout << a;
    }
    for(v=i;v<=i&&v>0;v--)
    {
        cout << b[v];
    }
 
}

В этом коде во время проверки получается отрицательное число, да и к примеру, в 2-ой системе могут вывестись 9-ки, как я не могу понять.
PS
Если непонятно как я это написал(а я это очень каряво написал), могу переделать код с более осмыслеными индефекаторами.
242
06 октября 2006 года
Оlga
2.2K / / 04.02.2006
Код:
#include<iostream.h>
int delenie(int a, int n)
{
    int b = 0;
    while([COLOR=blue]a >= n[/COLOR])
    {
        a = a-n;
        b++;
    }
    return b;
}
void main()
{
    int a,i , n, b[25];
    cout << "Vvedit nomer sistemu s4isleniy\n";
    cin >> n;
    cout << "Vvedit 4islo\n";
    cin >> a;
    for(i=0; a != 0; i++)
    {
        b=a % n;
        a = delenie(a,n);   // or a /= n;
    }
    for( [COLOR=blue]i = i - 1[/COLOR];[COLOR=purple] i >= 0[/COLOR] ;i--)
    {
        cout << b;
    }
 cout << '\n';
 
}

1 - в функции деление неправильное условие вухода из цикла.
цикл надо продолжать до тех пор пока а >= n
2 - индекс i в массиве при окончании цикла в котором ты делаешь перевод из системы в систему всегда идет на один вперед, поэтому при выводе надо его вернуть на один назад.
3 - этот блок не нужен:
 
Код:
if(a!=0)
    {
        cout << a;
    }
242
06 октября 2006 года
Оlga
2.2K / / 04.02.2006
вот решение подобной задачи которая помоему делает перевод между любыми СС, посмотри если интересно:
смотри ответ #19
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог