Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Toksa
1 / 1 / 0
Регистрация: 16.12.2009
Сообщений: 7
#1

преобразовать арабские числа в римские - C++

17.06.2010, 22:58. Просмотров 1447. Ответов 3
Метки нет (Все метки)

Ниже дан код, чтоб преобразовать арабские числа в римские! Не могли бы вы помочь и добавить сюда обратное преобразование? то есть если ввести римские символы, преобразовало бы в арабские числа! Помогите пожалуйста!



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <iostream.h>
 
#define    NUMS    13
 
char* to_roman( unsigned int num, char* buff )
{
    int p = NUMS;
    unsigned int a_num[NUMS] = {1,4,5,9,10,40,50,90,100,400,500,900,1000};
    char* r_str[NUMS] = {"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};
 
    *buff = '\0';
    while (p--)
    while (num >= a_num[p])
    {
        num -= a_num[p];
        strcat( buff, r_str[p] );
    }
 
    return buff;
}
 
int main( void )
{
 
    int arabian;
    char* roman;
    scanf("%d", &arabian);
    printf( "%i: %s\n", arabian, to_roman( arabian, roman ));
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2010, 22:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос преобразовать арабские числа в римские (C++):

Арабские в римские - C++
Нужно написать прогу которая будет переводить арабские числа в римские В ходе поисков по форуму нашёл такую информацию #include...

Нужно перевести римские цифры в арабские - C++
Дан текст из заглавных латинских букв, за которым следует пробел. Определить, является ли этот текст правильной записью римскими цифрами...

Перевод римские цифры в арабские и обратно - C++
Помогите решить задачу на C++ перевод римские цифры в арабские и обратно. PLEASE.

Римские числа - C++
Нужна программа, проверающая на правильность введенное римское число В римских числах не силен. Гуглил, толком понял лишь что: ...

Перевод римских цифр в арабские - C++
Нужно написать программу перевода римских чисел в арабские. Есть эта программа на c#, но нужна на c++. Помогите пожалуйста, горю! Вот эта...

Из римских чисел в арабские в файле - C++
Здравствуйте. Дана задача - в данном тексте заменить все римские числа на арабские. Вот я и не могу понять, каким образом в файловом потоке...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
6a6kin
232 / 102 / 2
Регистрация: 18.04.2010
Сообщений: 295
18.06.2010, 01:04 #2
Надо читать по два символа из строки, пробивать их в таблице, если нету вхождений, то разбивать на два символа и прибавлять к выходному числу эквивалент из числового массива, а если есть, то офк, прибавлять эквивалент двухсимвольного римского числа
Завтра постараюсь выложить это в коде.
Toksa
1 / 1 / 0
Регистрация: 16.12.2009
Сообщений: 7
19.06.2010, 18:59  [ТС] #3
было бы хорошо если выложили бы это в коде! а то я не совсем понимаю что нужно делать
6a6kin
232 / 102 / 2
Регистрация: 18.04.2010
Сообщений: 295
19.06.2010, 23:38 #4
Так и не смог скопмилить скрипт в VC 2010
Сначала ругался на не присвоенное значение roman, а теперь сообщает, что не может вызвать из массива нужный символ, так как индекс равняется 13...

Вот как должно выглядеть(за синтакс не ругать):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
int arabian;
    char* roman = "MMCX";
 
    int i = roman.size()-1;
    int k = 0;
    while(i > 0)
    {
        k = 0;
        string result (roman, i-1, 2);
        for(int j = 0; j<NUM; j++)
        {
            if(result == r_str[j])
            {
                arabian += a_num[j];
                i = i-2;
                k++;
            }   
        }
        
        if(k == 0)
        for(int j = 0; j<NUM; j++)
        {
            if(roman[i] == r_str[j])
            {
                arabian += a_num[j];
                i--;
            }   
        }
 
 
    }
Это главное. Функцию и пр., думаю, сам сделаешь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2010, 23:38
Привет! Вот еще темы с ответами:

Перевод римских чисел в арабские - C++
Доброй ночи всем. Нужны наиболее рациональные и простые в реализации идеи для решения задачи. Дан текст из заглавных латинских букв за...

Перевод римских чисел в арабские и наоборот - C++
Я в Си программирую недавно, помогите пожалуйста решить.... Разработать программу для перевода чисел, записанных римскими цифрами в...

Преобразовать числа - C++
Преобразовать введенное с клавиатуры восьмиразрядное двоичное число в десятичное. Буду очень благодарен, если сделаете правильно.

В произвольном тексте заменить арабские цифры символом # - C++
Задается произвольный текст, содержащий не более 10 строк, в каждой строке не более 80 символов. Требуется заменить арабские цифры...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.06.2010, 23:38
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru