Advertisement
Guest User

Untitled

a guest
Mar 14th, 2014
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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*)malloc(n*sizeof(char));
  29.     romai[0]=0;
  30.     if(1<=a && a<4000)
  31.     {
  32.         if(n==4)
  33.         {
  34.             strcat(romai,ezresek[(a/1000)-1]);
  35.             if(a%1000!=0)
  36.             {
  37.                 a%=1000;
  38.                 if(9<a%1000 && a%1000<100) n--;
  39.                 if(1<=a%1000 && a%1000<10) n-=2;
  40.                 n--;
  41.             }
  42.             else *romai;
  43.         }
  44.         if(n==3)
  45.         {
  46.             strcat(romai,szazasok[(a/100)-1]);
  47.             if(a%100!=0)
  48.             {
  49.                 a%=100;
  50.                 if(1<=a%100 && a%100<10) n--;
  51.                 n--;
  52.             }
  53.             else *romai;
  54.         }
  55.         if(n==2)
  56.         {
  57.             strcat(romai,tizesek[(a/10)-1]);
  58.             if(a%10!=0)
  59.             {
  60.                 a%=10;
  61.                 n--;
  62.             }
  63.             else *romai;
  64.         }
  65.         if(n==1) strcat(romai,egyesek[a-1]);
  66.        
  67.         return romai;
  68.     }
  69.     else return error;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement