Guest User

Untitled

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