C - konwersja rzymski - piątkowy

0

Witam, usiłuję zrobić program do konwersji z systemu rzymskiego na piątkowy, zrobiłem konwersję z rzymskiego na arabskie, ale nie wiem co dalej. Myślałem żeby otrzymany wynik w arabskich podzielić modulo 5 i kolejne reszty dzielenia zapisywać do jakiejś tablicy po czym odczytać tablicę w odwrotnej kolejności, ale nie wiem jak sie za to zabrac.

Kod prog.

 #include <stdio.h>
#include "stdafx.h"

#define ROZM 100

int liczba(char c){
if(c=='I'){
 return 1;
}
if(c=='V'){
 return 5;
}
if(c=='X'){
 return 10;
}
if(c=='L'){
 return 50;
}
if(c=='C'){
 return 100;
}
if(c=='D'){
 return 500;
}
if(c=='M'){
 return 1000;
}
if(c==0){
 return 0;
}
return -1;
}

int main(){
char rzymski[ROZM];
int i;
for(i=0;i<ROZM;i++){
 rzymski[i]=0;
}
printf("Wpisz rzymska liczbe\n");
scanf("%s",&rzymski);
int tmp=0, wynik=0, a=0;
i=0;
while(rzymski[i]!=0){
 a=liczba(rzymski[i]);
 tmp=liczba(rzymski[i+1]);
 if(a==-1){
  printf("LICZBA JEST NIEPOPRAWNA!!\n");
  break;
 }
 if(a>=tmp){
  wynik=wynik+a;
 }
 else{
  wynik=wynik+(tmp-a);
  i++;
 }
 i++;
}
printf("%d\n",wynik);
printf("wcisnij dowolny klawisz...\n");
scanf("%d",wynik);
}
0

pomysł dobry. Ten kod raczej poprawnie przelicza z 10 na każdy inny system o podstawie od 2 do 10. Zmienna podstawy w kodzie to 'p'

 #include <iostream>
#include <string>

using namespace std;

int main(){
	string s;
	unsigned c,L,p;
	char z[1];

	cin >> L;// wczytaj liczbe system 10;
	p=5; // bo system 5 mozna kazdy inny od 2 do 10

	cout << "\n" << L << "(10) = ";

	do {
		c = L % p;
		s = char(c + '0') + s;
		L = L / p;
	} while(L != 0);

	cout << s << "(" << p << ")" << endl;

	return 0;
} 

0 użytkowników online, w tym zalogowanych: 0, gości: 0