такая задача: Дана строка, содержащая число в двадцатеричной системе исчисления.
Преобразовать число в строке к десятичной системе.
не могли бы вы подсказать, как осуществить сам перевод. Из десятичной понимаю как это сделать, а наоборот нет.
![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
![]() ![]() |
![]() |
*оля* |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
такая задача: Дана строка, содержащая число в двадцатеричной системе исчисления.
Преобразовать число в строке к десятичной системе. не могли бы вы подсказать, как осуществить сам перевод. Из десятичной понимаю как это сделать, а наоборот нет. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Вот тут есть функции перевода X10 -> Xn и Xn -> X10 на Паскале:
Общие вопросы по математике. Теперь алгоритм понимаешь? ![]() |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Из десятичной понимаю как это сделать, а наоборот нет. Наоборот как раз проще. Потому что бОльшую часть работы за тебя сделает стандартный вывод на печать )). Это, конечно, если числа не очень большие.(15)(04)(12)(08)(03)(17) = ((((15*20 + 4)*20 +12)*20 + 8)*20 + 3)*20 + 17 -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
*оля* |
![]()
Сообщение
#4
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
теперь разобралась, спасибо)
|
*оля* |
![]()
Сообщение
#5
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
что-то не могу найти аналога функции pos =( переписала так, но что-то не работает, помогите найти ошибку пожалуйста:
Код int main(int argc, char *argv[]) {char n[10]; printf("vvedite cislo"); scanf("%s", n); const char str[20]="123456789ABCDEFGHIJK"; const int c=20; int m=0; for(int i=1; i<= strlen(n); i++){ int j; j=0; while (str[j]!=n[i]){j+=j;} int m=m*c+j-1;} printf("%d", m); /* TODO: Enter code here */ return 0; } |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Оля, не надо переписывать дословно с Паскаля на С, эти языки по-разному работают со строками. Во-первых, индексация в С всегда начинается с 0, во-вторых, лучше делать так:
#include <stdio.h> Обрати внимание, 20-ричная СС - это цифры 0 .. 9 и буквы A .. J, а не 1 .. 9 и A .. K ![]() |
*оля* |
![]()
Сообщение
#7
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
а не могли бы вы немного пояснить строку :
Код for(char *p = n; *p; p++) |
TarasBer |
![]()
Сообщение
#8
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Старт цикла: char *p = n (эквивалентно char* p, p = n)
Условие продолжения цикла: *p - в данном случае применяется то, что любое ненулевое число соответствует булевому значению ПРАВДА, а ноль - ЛЖИ. То есть цикл продолжается, если символ, на который сейчас ссылается p, ненулевой. И наконец, то, что надо делать между итерациями: p++ - переносим указатель на следующий символ. Короче, такой заголовок - это стандартный обход строки. -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 16.06.2024 23:31 |