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

Преобразование арабских чисел в римские - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как правильно округлить? http://www.cyberforum.ru/cpp-beginners/thread92682.html
Кратко условие: произвожу ввод времени времени в формате hours/min/sec( переменные t1 и t2), перевожу в секунды, складываю и делаю перевод обратно. Происходит неправильное округление секунд: #include <iostream> using namespace std; /////////////////////////////////////////////////// struct time { int hours; int minutes; int seconds; };
C++ удаление записи с фаила подскажитэ пожайлуста каким образом можна удалить запись из файла, например есть текстовый фаил внем скажем скажем 5 записей(в даном случае обектов) записано. Каким образом можна из его удалить скажем вторую по счету запись? сам ума не приложу:(. Думаю можна типа перезаписать все в другои фаил пропустивши вторую запись а потом удалить исходный и новый переименовать как исходный, но ето уже... http://www.cyberforum.ru/cpp-beginners/thread92674.html
Смежность и инцидентность ребер и вершин в графе. C++
Нужно взять любой граф (желательно попроще), ввести его програму. потом вводим 2 вершины, программа говорит, смежны ли они. затем вводим ребро и вершину, программа отвечает, инцидентны ли они,затем вводим 2 ребра, программа говорит смежны ли они, и на конец 4-е вводим вершину и прога возвращает ее степень. К примеру взять граф квадрат с диагоналями... Помогите, пожалуйста
нахождение корня на интервале C++
дано x^2-4x-8,75. найти корень уравнения f(x)=0 на интервале (A,B) c точностью E. использовать метод хорд. где A=5,5 B=6,5 E=10^-4. Результат решения - "Корень уравнения X" честно сказать в математике я не силен уже 4 года как)) тобиш забыл все, поэтому не понимаю что и как искать даже математически, не то что в программе)) но имеется исходник подобной задачи, суть которой состоит в том что...
C++ как получить дробное число? http://www.cyberforum.ru/cpp-beginners/thread92601.html
как получить дробное число? 14/5=2 14%5=4 а как сделать чтобы ответ был 2.8??? Добавлено через 9 минут все ненадо уже) сделал (float)n вот так
C++ Упражнение из Лафоре. Тема Перечисления. Как правильно сделать вывод? Условие: в программе определен печесляемый тип данных etype, отражающий должность сотрудника enum etype { laborer, secretary, manager, accountant, executive, researcher}. Надо по первой букве должности, введенной пользователем, определить соответствующее значение переменной, поместить это значение в переменную типа etype, а затем полностью вывести название должности. Это надо сделать с помощью 2... подробнее

Показать сообщение отдельно
inter
9696 / 2449 / 43
Регистрация: 06.03.2009
Сообщений: 8,503
05.02.2010, 01:27     Преобразование арабских чисел в римские
наверное как то так.
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
char *a2roman (int value, char *c1, char *c2, char *c3);
 
int main (void)
{
int arabicalNumeral = 1;
int result;
char roman[15] = "";
do
{
clrscr();
textcolor(GREEN);
cprintf("..::Programma dlya preobrazovaniyz arabskih chisel v rimskie::..");
cprintf("\n\r============================================== ==================");
textcolor(RED);
cprintf("\n\n\rVvedite chislo ot 1 do 3000: ");
scanf ("%d", &arabicalNumeral);
}
while ((arabicalNumeral < 1) || (arabicalNumeral > 3000));
if ((arabicalNumeral <= 3000) && (arabicalNumeral >= 1000))
{
result = arabicalNumeral / 1000;
strcat (roman, a2roman(result, "M", " ", " "));
arabicalNumeral -= (result * 1000);
}
if ((arabicalNumeral < 1000) && (arabicalNumeral >= 100))
{
result = arabicalNumeral / 100;
strcat (roman, a2roman(result, "C", "D", "M"));
arabicalNumeral -= (result * 100);
}
if ((arabicalNumeral < 100) && (arabicalNumeral >= 10))
{
result = arabicalNumeral / 10;
strcat (roman, a2roman(result, "X", "L", "C"));
arabicalNumeral -= (result * 10);
}
if ((arabicalNumeral < 10) && (arabicalNumeral >= 1))
{
strcat (roman, a2roman(arabicalNumeral, "I", "V", "X"));
}
textcolor(LIGHTBLUE);
cprintf("Eto chiclo v rimskom napisanii: %s\n\n", roman);
textcolor(YELLOW);
cprintf("\n\r ...Press any key to exit... ");
getch();
return 0;
}
или так
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
#include <stdio.h>
#include <stdlib.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 )
{
char* roman;
unsigned int arabian = 3451;
 
roman = (char*)malloc(256);
printf( "%i: %s\n", arabian, to_roman( arabian, roman ));
free( roman );
 
return 0;
}
 
Текущее время: 22:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru