Co poprawić żeby przy wyniku nie pojawiało się ' dh ' i aby program wyglądał lepiej? Z góry mówię że dopiero się uczę programować i proszę w prostych słowach odpowiedzi. Dodatkowo mam pytanie moze mnie ktoś naprowadzi jak dodać funkcje konwertacji z rzymskich na arabskie?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct RZYM{
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;
int i = 0;
rzymskie = (char *)malloc(sizeof(char) * 10);
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 argc, char const *argv[])
{
int liczba;
char *wynik;
printf("Wpisz liczbe w postaci arabskiej:\n");
scanf("%d", &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;
}