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

  • Sk8erPeter

    nagyúr

    Na, most eszembe jutott, hogy ha már volt szó róla, gyakorlásként gyorsan összecsapom az arab számból római számba átváltó programot, bocs, ha nem túl szép megoldás, de most kissé késő van, és túl gyorsan csináltam, így szebbre most nem futotta. :B Holnap még úgyis eszembe fog jutni ezer dolog, amit sokkal szebben lehetett volna csinálni, de Ti is szólhattok ezért. :D :R (A méretmegadásoknál nem szarakodtam túl sokat, egyből a végső sztringnek 100-at adtam, az biztos elég.)

    // Arab számból római szám
    #include <stdio.h>
    #include <string.h> /* a strcat miatt */

    int main(){
    int arab, temp, szamjegy;
    char romai[100];

    char egyesek[][10] = {"I","II","III","IV","V","VI","VII","VIII","IX"};
    char tizesek[][10] = {"X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
    char szazasok[][10] = {"C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};
    char ezresek[][4] = {"M","MM","MMM"};

    printf("Az arab szam: ");
    scanf("%d",&arab);
    if(arab<4000)
    {
    temp=arab;
    szamjegy=0;
    while(temp>0)
    {
    temp/=10;
    szamjegy++;
    }
    if(szamjegy==4)
    {
    strcat(romai,ezresek[arab/1000-1]);
    arab-=(arab/1000)*1000;
    szamjegy--;
    }
    if(szamjegy==3)
    {
    strcat(romai,szazasok[arab/100-1]);
    arab-=(arab/100)*100;
    szamjegy--;
    }
    if(szamjegy==2)
    {
    strcat(romai,tizesek[arab/10-1]);
    arab-=(arab/10)*10;
    szamjegy--;
    }
    if(szamjegy==1)
    {
    strcat(romai,egyesek[arab-1]);
    }
    printf("A romai szam: %s\n", romai);
    }
    else printf("\n4000 alatti szamot adj meg!");
    getchar();
    }

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