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

задача на римскую систему счисления - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вектор векторов http://www.cyberforum.ru/cpp-beginners/thread401670.html
Хочу создать вектор, содержащий векторы, которые содержат строки. Написал такой код: #include <iostream> #include <vector> using namespace std; typedef vector<string> vector_string; int main () {
C++ ошибка при компиляции перенес программу с другого компа и столкнулся со следующими ошибками(см. изображение). попробывал скачать библиотеку graphics.h для dev-cpp и чувствую что нужно что то еще.... Подскажите пожалуйста как исправить эти ошибки, какую библиотеку подключить? среда: Visual C++ 6.0 http://www.cyberforum.ru/cpp-beginners/thread401668.html
C++ Файлы: Определить команды, занявшие первые 3 места и 3 последние
Дан файл, содержащий результаты розыгрыша футбольного чемпионата. Определить команды занявшие первые 3 места и 3 последние.
C++ Помогите разобраться с задачей....
Дорогие программисты прошу вас помочь в следующем вопросе: мне нужно открыть в С++ файл формата BMP и получить значение его пикселей в виде матрицы для дальнейшей обработки.
C++ Компиляция (gcc) http://www.cyberforum.ru/cpp-beginners/thread401639.html
Добрый вечер! После компиляции текстовый файл становится вдруг двоичным, как следствие его невозможно открыть для исправлений. Почему? #include <stdio.h> struct klass { char fam; int mark; float nomer; }; int main (void)
C++ Скроллинг! Такой вопрос - После создания скроллинга как его можно связать с загруженным в ресурсы bitmap в с++ API!?!? Добавлено через 3 часа 5 минут Новый вопрос на туже тематику http://s2.ipicture.ru/uploads/20111208/DXaSvM4J.png Как можно этого избежать! Скроллинг вечно перерисовывается! подробнее

Показать сообщение отдельно
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
08.12.2011, 23:12     задача на римскую систему счисления
Ввести число римскими цифрами (менее 4000 в арабской записи), учитывая следующие обозначения:
I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000.
Проверить правильность ввода исходных данных и напечатать это число арабскими цифрами.

у меня получилось как-то вот так:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <string.h> 
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main ()
{
     char s[256], m;
        int n, c, c1, i, a, k;
        
        printf("Vvedite chislo: ");
        scanf("%s", s); 
        k=strlen(s);
        
        for (i = 0; i < k; i++)   
        { if ((s[i] != 'I') &&  (s[i] != 'V') && (s[i] != 'X') && //проверка
        (s[i] != 'L') && (s[i] != 'C') && 
        (s[i] != 'D') && (s[i] != 'M')) exit (0);}; 
        
        for (i = 0, c = 0, n = 0; i < k; i++)
        {
                c1 = c;
                
                if (s[i] == 'I')
                        c = 1;
                        
                if (s[i] == 'V')
                        c = 5;
 
                if (s[i] == 'X')
                        c = 10;
 
                if (s[i] == 'L')
                        c = 50;
 
                if (s[i] == 'C')
                        c = 100;
 
                if (s[i] == 'D')
                        c = 500;
 
                if (s[i] == 'M')
                        c = 1000;
 
                if (c > c1)
                        a = -2 * c1;
                else
                    a = 0;
 
                n = n + a + c;
        }
 
        printf("Vashe chislo: %d", n);
        getch();
        return 0;
}
Но. Непонятно как исключить из этого запись вида IIII (там же не должно быть повторение четырех одинаковых символов подряд), запись вида IIX (левее большего значения может стоять только одна I) и запись вида XIXX (символ I, стоящий перед большим, может быть только предпоследним в строке, а последним должен быть символ больший I и только один).

Кому не сложно, помогите пожалуйста. Желательно доработать этот код))
Заранее спасибо!

Добавлено через 20 часов 13 минут
up)))))

Добавлено через 3 часа 9 минут
up.....
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru