Ratze: Mir fehlt gerade echt die Logik!

Hallo,

ich möchte Prüfen ob eine Zahl teilbar ist:

int zahl;
zahl=200;
if(zahl%100)
{
 printf("Ja");
}
else
{
 printf("Nein");
}

200 ist doch restlos durch 100 teilbar, aber ich bekomme ein klares NEIN, wieso?

  1. Hello,

    200 ist doch restlos durch 100 teilbar, aber ich bekomme ein klares NEIN, wieso?

    ...weil du die Intelligenz des Interpreters falsch einschätzt, er liest in deinem Statement was anderes:
    if (zahl % 100)
    -> if (200 % 100)
    -> if (0)
    -> if (false)
    => er führt den else-Zweig aus.

    if (zahl%100 == 0)...

    MfG
    Rouven

    --
    -------------------
    Ambition is the last refuge of failure.  --  Oscar Wilde (Irish Poet, Novelist, Dramatist and Critic, 1854-1900)
  2. Hi,

    ich möchte Prüfen ob eine Zahl teilbar ist:

    int zahl;
    zahl=200;
    if(zahl%100)
    {
    printf("Ja");
    }
    else
    {
    printf("Nein");
    }

    200 ist doch restlos durch 100 teilbar, aber ich bekomme ein klares NEIN, wieso?

    200%100 = 0
    0 = false, darum wird der else-zweig aufgerufen.

    Ist mir (wie wohl vielen anderen) auch schon passiert, darum weiss ich das ;)

    mfG,
    steckl

  3. Hi,

    danke, jetzt kapiere ich :)