Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Toksa
1 / 1 / 0
Регистрация: 16.12.2009
Сообщений: 7
1

Преобразовать арабские числа в римские

17.06.2010, 22:58. Просмотров 1661. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2010, 22:58
Ответы с готовыми решениями:

Арабские в римские
Нужно написать прогу которая будет переводить арабские числа в римские В ходе...

Арабские цифры в римские
Перевод арабских цифр в римские. Саму задачу я решил, так что код как таковой...

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

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

Заменить во всей строке все римские числа на соответствующие десятичные числа
Напишите функцию, которая заменяет во всей строке все римские числа на...

3
6a6kin
231 / 101 / 6
Регистрация: 18.04.2010
Сообщений: 294
18.06.2010, 01:04 2
Надо читать по два символа из строки, пробивать их в таблице, если нету вхождений, то разбивать на два символа и прибавлять к выходному числу эквивалент из числового массива, а если есть, то офк, прибавлять эквивалент двухсимвольного римского числа
Завтра постараюсь выложить это в коде.
1
Toksa
1 / 1 / 0
Регистрация: 16.12.2009
Сообщений: 7
19.06.2010, 18:59  [ТС] 3
было бы хорошо если выложили бы это в коде! а то я не совсем понимаю что нужно делать
0
6a6kin
231 / 101 / 6
Регистрация: 18.04.2010
Сообщений: 294
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--;
            }   
        }
 
 
    }
Это главное. Функцию и пр., думаю, сам сделаешь.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2010, 23:38

Римские числа
Нужна программа, проверающая на правильность введенное римское число В...

Перевод римских цифр в арабские
Нужно написать программу перевода римских чисел в арабские. Есть эта программа...

Из римских чисел в арабские в файле
Здравствуйте. Дана задача - в данном тексте заменить все римские числа на...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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