Mam pytanie, bo nieogarniam co jest zle w funkcji DecToRoman. Reszta dziala poprawnie.z gory dzieki za pomoc.
60 15 C:\Users\Simon\Desktop\PP\1.cpp [Error] invalid conversion from 'const char*' to 'char' [-fpermissive]
72 10 C:\Users\Simon\Desktop\PP\1.cpp [Error] invalid conversion from 'char*' to 'char' [-fpermissive]
#include <stdio.h>
#include <string.h>
int RomanToDec(char* num);
char DecToRoman(int n);
int main()
{
int x, nLiczbaD;
char y, nLiczba[100];
printf("Podaj liczbe Rzymska : ");
fgets(nLiczba, 100, stdin);
x = RomanToDec(nLiczba);
printf("Konwersja na liczbe Arabska : %d", x);
printf("Podaj liczbe Arabska : ");
scanf("%d", &nLiczbaD);
y = DecToRoman(nLiczbaD);
return 0;
}
int RomanToDec(char* num)
{
char t1[] = {'M', 'D', 'C', 'L', 'X', 'V', 'I'};
char* t2[] = {"CM", "CD", "XC", "XL", "IX", "IV", "I"};
int t3[] = {1000, 500, 100, 50, 10, 5, 1};
int t4[] = {900, 400, 90, 40, 9, 4, 1};
int len = strlen(num)-1;
int sum = 0;
int j = 0, i = 0;
while (i < len)
{
if (num[i] == t1[j])
{
sum += t3[j];
i++;
}
else if (i < len-1 && num[i] == t2[j][0] && num[i+1] == t2[j][1])
{
sum += t4[j];
i += 2;
}
else
j++;
}
return sum;
}
char DecToRoman(int n)
{
char t1[] = {'M', 'D', 'C', 'L', 'X', 'V', 'I'};
char* t2[] = {"CM", "CD", "XC", "XL", "IX", "IV", "I"};
int t3[] = {1000, 500, 100, 50, 10, 5, 1};
int t4[] = {900, 400, 90, 40, 9, 4, 1};
char wynik = "";
int j = 0;
while (n > 0)
{
if (n >= t3[j])
{
n -= t3[j];
wynik += t1[j];
}
else if (n >= t4[j])
{
n -= t4[j];
wynik += t2[j];
}
else
j++;
}
return wynik;
}