Új hozzászólás Aktív témák

  • mm00
    aktív tag

    Tessék, egy alapnak jó lesz (google) :)

    #include<stdio.h>

    main()
    {
    int a,b,c,d,e;
    clrscr();
    printf("Input a number (between 1-3000):");
    scanf("%d",&e);
    while (e==0||e>3000)
    {
    printf ("ERROR: Invalid Input!
    ");
    printf ("Enter the number again:");
    scanf ("%d",&e);
    }
    if (e>3000)
    printf("Invalid");
    a = (e/1000)*1000;
    b = ((e/100)%10)*100;
    c = ((e/10)%10)*10;
    d = ((e/1)%10)*1;

    if (a ==1000)
    printf("M");
    else if (a ==2000)
    printf("MM");
    else if (a ==3000)
    printf("MMM");

    if (b == 100)
    printf("C");
    else if (b == 200)
    printf("CC");
    else if (b == 300)
    printf("CCC");
    else if (b == 400)
    printf("CD");
    else if (b ==500)
    printf("D");
    else if (b == 600)
    printf("DC");
    else if (b == 700)
    printf("DCC");
    else if (b ==800)
    printf("DCCC");
    else if (b == 900)
    printf("CM");


    if (c == 10)
    printf("X");
    else if (c == 20)
    printf("XX");
    else if (c == 30)
    printf("XXX");
    else if (c == 40)
    printf("XL");
    else if (c ==50)
    printf("L");
    else if (c == 60)
    printf("LX");
    else if (c == 70)
    printf("LXX");
    else if (c ==80)
    printf("LXXX");
    else if (c == 90)
    printf("XC");

    if (d == 1)
    printf("I");
    else if (d == 2)
    printf("II");
    else if (d == 3)
    printf("III");
    else if (d == 4)
    printf("IV");
    else if (d ==5)
    printf("V");
    else if (d == 6)
    printf("VI");
    else if (d == 7)
    printf("VII");
    else if (d ==8)
    printf("VIII");
    else if (d == 9)
    printf("IX");
    getch();
    }

    Egy másik, ez függvénybe :)

    // written by Ste Cork, free for any and all use.
    //
    const char *Number_AsRomanString( int iNumber )
    {
    struct RomanDigit_t
    {
    char *m_psString;
    int m_iValue;
    };

    static const RomanDigit_t RomanDigits[]=
    {
    {"M", 1000},
    {"CM", 900},
    {"D", 500},
    {"CD", 400},
    {"C", 100},
    {"XC", 90},
    {"L", 50},
    {"XL", 40},
    {"X", 10},
    {"IX", 9},
    {"V", 5},
    {"IV", 4},
    {"I", 1},
    };

    // Strictly speaking, Roman digits can't display something
    // such as 4999 without using overlaid bars and so forth,
    // but for now this is a quick-and-dirty piece of code that'll
    // just keep using M's...
    //
    static char sRomanString[20];
    sRomanString[0] = '\0';

    for (int i=0; iNumber && i<sizeof(RomanDigits)/
    sizeof(RomanDigits[0]); i++)
    {
    while ( RomanDigits[i].m_iValue <= iNumber )
    {
    strcat( sRomanString, RomanDigits[i].m_psString );
    iNumber -= RomanDigits[i].m_iValue;
    }
    }

    return sRomanString;
    }

Új hozzászólás Aktív témák