Advertisement
Guest User

Untitled

a guest
Mar 14th, 2014
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.85 KB | None | 0 0
  1. char toromai(int a) /* Arab számot alakít római számmá */
  2. {
  3.     int tmp,n=0;
  4.     char *romai;
  5.     char *error = "#ÉRTÉK!";
  6.     char egyesek[][10]  = {"I","II","III","IV","V","VI","VII","VIII","IX"};
  7.     char tizesek[][10]  = {"X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
  8.     char szazasok[][10] = {"C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};
  9.     char ezresek[][4]  = {"M","MM","MMM"};
  10.  
  11.     tmp=a;
  12.     while(tmp>0)
  13.     {
  14.         tmp/=10;
  15.         n++;
  16.     }
  17.  
  18.     romai=(char*)malloc(n*sizeof(char));
  19.     if(1<=a<4000)
  20.     {
  21.         romai[n]='\0';
  22.         if(n==4)
  23.         {
  24.             strcat(romai,ezresek[(a/1000)-1]);
  25.             a%=1000;
  26.             n--;
  27.         }
  28.         if(n==3)
  29.         {
  30.             strcat(romai,szazasok[(a/100)-1]);
  31.             a%=100;
  32.             n--;
  33.         }
  34.         if(n==2)
  35.         {
  36.             strcat(romai,tizesek[(a/10)-1]);
  37.             a%=10;
  38.             n--;
  39.         }
  40.         else strcat(romai,egyesek[a-1]);
  41.        
  42.         free (romai);
  43.         return *romai;
  44.     }
  45.     else return *error;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement