Hirdetés

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

  • Gyuri16
    senior tag

    No megírtam így, eredetileg is így kérték, egy kérdésem van még

    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #include<ctype.h>

    void main(){
    char str[100];
    int dobas;
    int i;
    int egy=0, ket=0, ha=0, negy=0, ot=0, hat=0;

    clrscr();

    printf("\nHany kocadobast vegez? ");
    scanf("%d", &dobas);
    printf("Irja be a kockadobasok eredmenyeit! ");
    scanf("%s", str);

    for(i=0;i<dobas;i++)
    {
    if (str[i] =='1')egy++;
    else if (str[i] == '2')ket++;
    else if (str[i] == '3')ha++;
    else if (str[i] == '4')negy++;
    else if (str[i] == '5')ot++;
    else if (str[i] == '6')hat++;
    }


    printf("1: %d db\n", egy);
    printf("2: %d db\n", ket);
    printf("3: %d db\n", ha);
    printf("4: %d db\n", negy);
    printf("5: %d db\n", ot);
    printf("6: %d db\n", hat);

    getch();
    }

    Hogy tudom a bekért számsor formai helyességét ellenőrizni egyszerűen? Ebben az esetben azt hogy szám-e, illetve hogy 1 és 6 között van.
    Előre is nagyon köszönöm a segítséget!

    miutan beolvastad az adatokat vegzel egy ellenorzest.
    egy for ciklussal vegigmesz a string elemein, mindegyiken megnezed, hogy 1 es 6 kozott van-e.
    ezt legegyszerubben ugy, hogy a betu '1' es '6' kozott van-e (siman osszehasonlitassal), igy:

    char k;
    /* k-t beolvasod stb.. */
    if (k>='1' && k<='6') {
    /* a szam 1 es 6 kozott van */
    }

    ez a megoldas nem a legszebb, mivel bizik abban, hogy a kodolasban a szamok novekvo sorrendben vannak egymas utan (altalaban ez igy van). ha ez nem tetszik, akkor az isdigit() fv segithet.
    (bar megjegyzem en inkabb eleve szamokkent kezelnem ezeket az adatokat, es ugy is olvasnam be oket)

    az egesz tesztelest es beolvasast pedig egy ciklusba teszed, amit addig csinalsz, amig nem jo amit bead a felhasznalo

    tovabba nem lenne rossz megnezni azt is, hogy a beolvasott dobas valtozod megegyezik-e a beolvasott dobasok szamaval

    nepszter1: nem ertem mit kerdezel, olvasd el magad utan a hozzaszolasodat, es gondold ujra. ha egy szam osztoit akarod kiiratni, akkor vegigmesz egy ciklusban 2 tol a szamig, es a mar emlitett % operatorral megnezed osztja e.

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