Hirdetés

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

  • Rickazoid

    addikt

    Üdv!

    A következő kóddal (mintakód, de a problémám ugyanez) lenne a problémám:
    int i;
    scanf("%d",&i);
    printf("%d",i); //nem integer esetén 0
    while(i==0)
    {
    printf("Nem jó. Új szám: ");
    scanf("%d",&i);
    }
    printf("%d",i);

    Amíg az i-nek számot adok meg, nincs gond, de amint betűt, a mögötte lévő ciklus végtelen ciklusba kerül. Ezt próbáltam meg kiküszöbölni a példában szereplő while ciklussal ami megnézi, hogy 0-e, mivel nem szám esetében 0 lesz az i értéke, de az is végtelen ciklusba kerül. Hogy tudom elérni, hogy nem szám beírásakor újrakérje a számot végtelen ciklusok helyett?
    Az int-et nem módosíthatom karakterre, főleg nem karaktertömbre, az most túl bonyolult lenne a program többi része miatt.
    Van valami megoldás erre? Egyáltalán miért nem működik? Ha az i értéke 0 lesz, akkor a while miért hülyül meg, mi a különbség 0 és 0 közt, ha mindkettő integer?

    [ Szerkesztve ]

    Erkölcstelen csíkot húzni a másik krumplifőzelékébe csak azért, hogy legyen egy szünet.

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