JEZYK C !
Zmienia mi z arabskiego na rzymski jak dodać funkcję żeby zamienić liczby rzymskie na arabskie?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct RZYM {
unsigned int arab;
char *rzym;
} rz[] = {
{1000, "M"},
{900, "CM"},
{500, "D"},
{400, "CD"},
{100, "C"},
{90, "XC"},
{50, "L"},
{40, "XL"},
{10, "X"},
{9, "IX"},
{5, "V"},
{4, "IV"},
{1, "I"},
};
char *wRzym(int n)
{
char *rzymskie = (char*)malloc(10 * sizeof(char));
rzymskie[0] = '\0'; /*o tutaj :) */
int i = 0;
while (n) {
while (n < rz[i].arab)
i++;
while(n >= rz[i].arab) {
strcat(rzymskie, rz[i].rzym);
n -= rz[i].arab;
}
}
return rzymskie;
}
int main()
{
int liczba;
char *wynik;
printf("Wpisz liczbe w postaci arabskiej:\n");
scanf("%i", &liczba);
if(liczba < 0 || liczba > 3999) {
printf("Liczba moze byc jedynie w zakresie od 1 do 3999.\n");
return -1;
}
wynik = wRzym(liczba);
puts(wynik);
free(wynik);
return 0;
}