системы исчисления, Pelles С for Windows |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
системы исчисления, Pelles С for Windows |
*оля* |
2.12.2010 11:29
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: 1 |
такая задача: Дана строка, содержащая число в двадцатеричной системе исчисления.
Преобразовать число в строке к десятичной системе. не могли бы вы подсказать, как осуществить сам перевод. Из десятичной понимаю как это сделать, а наоборот нет. |
volvo |
2.12.2010 11:33
Сообщение
#2
|
Гость |
Вот тут есть функции перевода X10 -> Xn и Xn -> X10 на Паскале:
Общие вопросы по математике. Теперь алгоритм понимаешь? |
Lapp |
2.12.2010 13:15
Сообщение
#3
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Из десятичной понимаю как это сделать, а наоборот нет. Наоборот как раз проще. Потому что бОльшую часть работы за тебя сделает стандартный вывод на печать )). Это, конечно, если числа не очень большие.(15)(04)(12)(08)(03)(17) = ((((15*20 + 4)*20 +12)*20 + 8)*20 + 3)*20 + 17 -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
*оля* |
8.12.2010 19:03
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: 1 |
теперь разобралась, спасибо)
|
*оля* |
9.12.2010 23:24
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: 1 |
что-то не могу найти аналога функции 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 |
9.12.2010 23:58
Сообщение
#6
|
Гость |
Оля, не надо переписывать дословно с Паскаля на С, эти языки по-разному работают со строками. Во-первых, индексация в С всегда начинается с 0, во-вторых, лучше делать так:
#include <stdio.h> Обрати внимание, 20-ричная СС - это цифры 0 .. 9 и буквы A .. J, а не 1 .. 9 и A .. K |
*оля* |
10.12.2010 11:09
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: 1 |
а не могли бы вы немного пояснить строку :
Код for(char *p = n; *p; p++) |
TarasBer |
10.12.2010 11:14
Сообщение
#8
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Старт цикла: char *p = n (эквивалентно char* p, p = n)
Условие продолжения цикла: *p - в данном случае применяется то, что любое ненулевое число соответствует булевому значению ПРАВДА, а ноль - ЛЖИ. То есть цикл продолжается, если символ, на который сейчас ссылается p, ненулевой. И наконец, то, что надо делать между итерациями: p++ - переносим указатель на следующий символ. Короче, такой заголовок - это стандартный обход строки. -------------------- |
Текстовая версия | 6.06.2024 8:18 |