Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- void converter() {
- //переменные
- string line;
- char buff[100];
- char err[100];
- for (int i = 0; i < 100; i++) {
- buff[i] = NULL;
- }
- int chetdef = 0;
- int chetchik = 0;
- cout << "Введите ваше римское число\n -";
- cin.getline(buff, 100);
- for (int i = 0; i < 100; i++)
- {
- if (buff[i] == NULL) continue;
- switch (buff[i]) {
- case 'I':
- if (i + 1 < strlen(buff) && (buff[i + 1] == 'V' || buff[i + 1] == 'X' || buff[i + 1] == 'C')) {
- chetchik = chetchik - 1;
- }
- else if (i + 1 < strlen(buff) && (buff[i + 1] == 'I' && buff[i + 2] == 'I' && buff[i + 3] == 'I' )) {
- cout << "ERROR" << endl;
- }
- else chetchik = chetchik + 1;
- break;
- case 'V':
- if (i + 1 < strlen(buff) && (buff[i + 1] != 'V')) {
- }
- chetchik = chetchik + 5;
- break;
- case 'X':
- if (i + 1 < strlen(buff) && (buff[i + 1] == 'L' || buff[i + 1] == 'C' || buff[i + 1] == 'M')) {
- chetchik = chetchik - 10;
- }
- else if (i + 1 < strlen(buff) && (buff[i + 1] == 'X' && buff[i + 2] == 'X' && buff[i + 3] == 'X' && buff[i + 4] == 'X')) {
- cout << "ERROR" << endl;
- }
- else chetchik = chetchik + 10;
- break;
- case 'L':if (i + 1 < strlen(buff) && (buff[i + 1] == 'L')) {
- cout << "ERROR" << endl;
- }
- else chetchik = chetchik + 50;
- break;
- case 'C':
- if (i + 1 < strlen(buff) && (buff[i + 1] == 'D' || buff[i + 1] == 'M')) {
- chetchik = chetchik - 100;
- }
- else if (i + 1 < strlen(buff) && (buff[i + 1] == 'C' && buff[i + 2] == 'C' && buff[i + 3] == 'C' && buff[i + 4] == 'C')) {
- cout << "ERROR" << endl;
- }
- else chetchik = chetchik + 100;
- break;
- case 'D':
- if (i + 1 < strlen(buff) && (buff[i + 1] == 'D')) {
- cout << "ERROR" << endl;
- }
- else chetchik = chetchik + 500;
- break;
- case 'M':
- chetchik = chetchik + 1000;
- break;
- default: err[chetdef] = buff[i]; chetdef++;
- break;
- }
- // LL NO; VV NO ; CCCCC NO; DD NO;
- }
- cout << "Числа не прошедшие обработку:\n -";
- for (int i = 0; i < chetdef; i++) {
- if (chetdef > 0) {
- cout << err[i] << " ";
- }
- else cout << "Все числа прошли обработку";
- }
- cout << endl;
- if (chetchik == 0) {
- cout << "Вы не ввели число для перевода" << endl;
- }
- else {
- cout << "Ваше арабское число\n -" << chetchik << endl;
- }
- }
- int main() {
- setlocale(0, "rus");
- converter();
- system("pause");
- return 0;
- }
Add Comment
Please, Sign In to add comment