Hirdetés

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

  • Hani

    aktív tag

    Sziasztok,

    újra gondom van, pontosabban egy régi dolog jött fel újra.
    Egyszerű a feladat: 1 és 5 közötti számokat kell beolvasnom. Azt gondoltam, hogy megoldom ezzel:

    #include <stdio.h>


    int main() {

    int i;

    do
    {
    printf("Adjon meg egy szamot 1 es 5 kozott:\n");
    scanf("%d", i);
    fflush(stdin);

    if ((1>i) || (5<i)) printf("A megadott adat nem 1 es 5 kozotti szam.\n");

    } while ((1>i) || (5<i));

    printf("A megadott szam: %d\n", i);

    return 0;
    }

    A program megy, ha mondjuk 4-et ütök be. Működik akkor is, ha mondjuk 44-et ütök: kiírja, hogy hibás és újra kéri. De ha nem számot ütök be, hanem mondjuk egy k betűt, akkor végtelen ciklusban elkezdi kiírni, hogy "Adjon meg egy szamot 1 es 5 kozott:
    A megadott adat nem 1 es 5 kozotti szam." ,

    Mindezt beolvasás nélkül, hiába az fflush.

    Kérdés, hogy mit nézek el? Hogyan kell normálisan bekérni 1 és 5 közötti számokat?

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