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

  • don_peter

    senior tag

    Ezen elven kezdtem el agyalni:

    void float_to_str(float szam){
    int number, mennyi = 0, i = 0, tizedes = 0, oszto_tomb[8];

    if(szam < 10)
    tizedes = 1;
    else if(szam < 100)
    tizedes = 2;
    else if(szam < 1000)
    tizedes = 3;
    else if(szam < 10000)
    tizedes = 4;
    else
    printf("Ez a szám már túl nagy.");

    number = szam * 100000;

    while(number != 0) {
    oszto_tomb[i] = number % 10;
    printf("%i, ", oszto_tomb[i]);
    number = number / 10;
    mennyi = i;
    i++;
    }
    printf("\n");

    for(i = mennyi; i >= 0; i--){
    if(i == (mennyi+1)-tizedes)
    printf("%i.", oszto_tomb[i]);
    printf("%i", oszto_tomb[i]);
    }

    printf("\nHány karakter: %i\n", mennyi+1);

    }
    //kiíratása a main függvényen belül
    float_to_str(12.34567);

    Ez nádjából jól működik amíg 10-nél nem kisebb a lebegőpontos szám amit beadok neki.

    Így néz ki egy kimenet:
    7, 6, 5, 4, 3, 2, 1,
    12.234567
    Hány karakter: 7

    12.234567 (mondjuk valamiért itt 2db 2-es látszik pedig csak 1 van a sorozatban)
    A lényeg látszik belőle, hogy mit is szeretnék.
    Ez hogy lehet hatékonyabban megoldani?

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

Hirdetés