Hirdetés

Keresés

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

  • kingabo

    őstag

    válasz Pcmagicnet #2355 üzenetére

    A az 'i2' és a 'k2' azok milyen betűk?
    Ehelyett :printf("(%1.1f%s) \n", (a / k), "%" ); ez is írható: printf("(%1.1f\%) \n", (a / k));. Ha egy string-ben egy foglalt operátort akarsz használni, mint itt pl a %-ot, vagy idézőjelet("), akkor szimplán írj elé egy \ jelet.Ha a \ jel kellene az így néz ki: \\ ;) Pont ugyanígy a printf("%s","*"); helyett printf("\*"); ;) Illetve ha csak 1 karaktert íratsz ki akkor szebb a %s helyett a %c.
    Ha akarsz a progidon rengeteget rövidíteni: ascii. ;] Kicsit bővebben, a ciklusban a c1 a bekért betű ascii kódját fogja tárolni (vagyis ha nem %c-vel íratod ki, hanem %d-vel akkor a betű helyett az ascii kódja kerül a képernyőre). Az ascii kódot pedig szépen fel tudod használni egy tömb indexelésére. Pl a szám tömb indexeléséhez:
    if (c1>='0' && c1 <='9')
    {
    ++szam[c1-48]; //a 0 ascci kodja 48, vagyis ezt le kell vonni
    }

    Hasonlóan rövid lesz a betűk esetén is az 'A' esetén 65-t kell levonni, a 'a' esetén 97-et. Persze a megfelelő méretű tömböket elötte le kell foglalni.

    (#2356) Pcmagicnet: ránézésre jó, kipróbálod és kiderül.

  • Pcmagicnet

    csendes tag

    válasz Pcmagicnet #2355 üzenetére

    Itt a megoldás.( Ha jól gondolom )
    /* százalék számítás */
    k = (nc/100.0) ;
    printf("\na:");
    a2 = (nc/70.0); /* max 70 karaktert ír ki ha 100%. Ha pl: nc=100 ez osztva 70.0 -el
    = 1.4. Ez a 70 karakternek az 1% -a! De ha az öszes karakter (nc)=1 akkor (nc/70.0)
    = 0.01. Ekkor ez a 70 karakter 1% -a.*/
    for(i=0; i<=(a/a2); ++i){ /* Az (a/a2) -vel megnézem hogy a 70 -nek az 1% -a hányszor
    van meg az 'a' változóba. Ha pl: a=10 és az összes karakter is 10 amiből adódóan
    az a2 értéke 0.1 akkor (a/a2) azaz 10 / 0.1 = 100. Így a kapott eredmény
    100% és 70db * karaktert ír ki. Másik példával: ha öszzes karakter (nc)=100
    ez osztva 70.0 -el = 1.4. Ez a 70 karakternek az 1% -a! Ebből 20db az 'a' betű, a többi más
    akkor (a/a2) azaz 20 / 1.4 = 14. Tehát 14db karakter a 70 karakter 20%-a. */
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (a / k) , "%" );

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