Keresés

Hirdetés

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

  • Pcmagicnet

    csendes tag

    válasz kingabo #2354 üzenetére

    Igazad van! Tényleg rosszul közelítettem meg a feladatot. Most csináltam egy olyat, hogy a bevitt karakterek száma adja meg a 100% -ot. Ez ugye bármennyi lehet! Ennek megfelelően számolom ki az egyes karakterek előfordulási gyakoriságát %-ban.
    Szerintem jó lett, de azért nézd meg. Kíváncsi vagyok a véleményedre.
    #include <stdio.h>

    main()
    {
    int c1, nc, i, ures, nulla,egy,ketto,harom,negy,ot,hat,het,nyolc,kilenc,egyeb;
    int a,b,c,d,e,f,g,h,i2,j,k2,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;
    float k;
    ures=c1=nc=a=b=c=d=e=f=g=h=i2=j=k2=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z = 0;
    nulla=egy=ketto=harom=negy=ot=hat=het=nyolc=kilenc=egyeb= 0;

    while((c1 = getchar()) != EOF){
    ++nc;
    switch(c1){
    case 'a': ++a; break;
    case 'b': ++b; break;
    case 'c': ++c; break;
    case 'd': ++d; break;
    case 'e': ++e; break;
    case 'f': ++f; break;
    case 'g': ++g; break;
    case 'h': ++h; break;
    case 'i2': +i2; break;
    case 'j': ++j; break;
    case 'k2': ++k2; break;
    case 'l': ++l; break;
    case 'm': ++m; break;
    case 'n': ++n; break;
    case 'o': ++o; break;
    case 'p': ++p; break;
    case 'q': ++q; break;
    case 'r': ++r; break;
    case 's': ++s; break;
    case 't': ++t; break;
    case 'u': ++u; break;
    case 'v': ++v; break;
    case 'w': ++w; break;
    case 'x': ++x; break;
    case 'y': ++y; break;
    case 'z': ++z; break;
    case ' ': ++ures; break;
    case '\n': ++ures; break;
    case '\t': ++ures; break;
    case '0': ++nulla; break;
    case '1': ++egy; break;
    case '2': ++ketto; break;
    case '3': ++harom; break;
    case '4': ++negy; break;
    case '5': ++ot; break;
    case '6': ++hat; break;
    case '7': ++het; break;
    case '8': ++nyolc; break;
    case '9': ++kilenc; break;
    default: ++egyeb; break;
    }
    }
    printf("Osszes karakter:%ddb=(100%s)\n\nEbbol:", nc, "%");

    /* százalék számítás */
    k = (nc/100.0) ;
    printf("\na:");
    for(i=0; i<=a; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (a / k), "%" );

    printf("b:");
    for(i=0; i<=b; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (b / k), "%" );

    printf("c:");
    for(i=0; i<=c; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (c / k), "%" );

    printf("d:");
    for(i=0; i<=d; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (d / k), "%" );

    printf("e:");
    for(i=0; i<=e; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (e / k), "%" );

    printf("f:");
    for(i=0; i<=f; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (f / k), "%" );

    printf("g:");
    for(i=0; i<=g; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (g / k), "%" );

    printf("h:");
    for(i=0; i<=h; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (h / k), "%" );

    printf("i2:");
    for(i=0; i<=i2; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (i2 / k), "%" );

    printf("j:");
    for(i=0; i<=j; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (j / k), "%" );

    printf("k:");
    for(i=0; i<=k2; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (k2 / k), "%" );

    printf("l:");
    for(i=0; i<=l; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (l / k), "%" );

    printf("m:");
    for(i=0; i<=m; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (m / k), "%" );

    printf("n:");
    for(i=0; i<=n; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (n / k), "%" );

    printf("o:");
    for(i=0; i<=o; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (o / k), "%" );

    printf("p:");
    for(i=0; i<=p; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (p / k), "%" );

    printf("q:");
    for(i=0; i<=q; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (q / k), "%" );

    printf("r:");
    for(i=0; i<=r; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (r / k), "%" );

    printf("s:");
    for(i=0; i<=s; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (s / k), "%" );

    printf("t:");
    for(i=0; i<=t; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (t / k), "%" );

    printf("u:");
    for(i=0; i<=u; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (u / k), "%" );

    printf("v:");
    for(i=0; i<=v; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (v / k), "%" );

    printf("w:");
    for(i=0; i<=w; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (w / k), "%" );

    printf("x:");
    for(i=0; i<=x; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (x / k), "%" );

    printf("y:");
    for(i=0; i<=y; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (y / k), "%" );

    printf("z:");
    for(i=0; i<=z; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (z / k), "%" );

    printf("Ures:");
    for(i=0; i<=ures; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n\n", (ures / k), "%" );

    printf("0:");
    for(i=0; i<=nulla; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (nulla / k), "%" );

    printf("1:");
    for(i=0; i<=egy; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (egy / k), "%" );

    printf("2:");
    for(i=0; i<=ketto; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (ketto / k), "%" );

    printf("3:");
    for(i=0; i<=harom; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (harom / k), "%" );

    printf("4:");
    for(i=0; i<=negy; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (negy / k), "%" );

    printf("5:");
    for(i=0; i<=ot; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (ot / k), "%" );

    printf("6:");
    for(i=0; i<=hat; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (hat / k), "%" );

    printf("7:");
    for(i=0; i<=het; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (het / k), "%" );

    printf("8:");
    for(i=0; i<=nyolc; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n", (nyolc / k), "%" );

    printf("9:");
    for(i=0; i<=kilenc; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n\n", (kilenc / k), "%" );

    printf("Egyeb karakter:");
    for(i=0; i<=egyeb; ++i){
    printf("%s","*");
    }
    printf("(%1.1f%s) \n\n", (egyeb / k), "%" );

    system("PAUSE");
    return 0;
    }

    Most már csak azt kéne megoldani a hisztogram kinyomtatásánál, hogy a 100% az max. 70 karakter vagyis * legyen. Az 50% 35 *, a 10 % 7 *....stb. Ezt hogy oldjam meg?

    Köszi a segítséget!!!

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