IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> системы исчисления, Pelles С for Windows
*оля*
сообщение 2.12.2010 11:29
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 125
Пол: Женский

Репутация: -  1  +


такая задача: Дана строка, содержащая число в двадцатеричной системе исчисления.
Преобразовать число в строке к десятичной системе.

не могли бы вы подсказать, как осуществить сам перевод. Из десятичной понимаю как это сделать, а наоборот нет.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 9.12.2010 23:58
Сообщение #2


Гость






Оля, не надо переписывать дословно с Паскаля на С, эти языки по-разному работают со строками. Во-первых, индексация в С всегда начинается с 0, во-вторых, лучше делать так:

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(int argc, char *argv[])
{
char n[10];
printf("vvedite cislo");
scanf("%s", n);

const int c = 20;
const char str[c + 1] = "0123456789ABCDEFGHIJ";
int m = 0;
for(char *p = n; *p; p++)
{
char *pp = strchr(str, toupper(*p));
m = m * c + (pp - str);
}
printf("%d", m);
return 0;
}


Обрати внимание, 20-ричная СС - это цифры 0 .. 9 и буквы A .. J, а не 1 .. 9 и A .. K smile.gif
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 16.08.2025 2:38
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"