Zählprogram



  • Hi leute,
    also ich wollt gern mal wissen ob es möglich ist das wenn ich einen Bereich festlege (zB 20) und eine Zählzahl (zB 2) das das Program dann alle Zahlen von 0(oder von mir aus auch 1) und alle Zahlen die bis 20 eine 2 enthalten(in diesem Fall 2,12,20) ausgibt.

    Ich sollte vielleicht noch dazu sagen das ich mich in C nochnicht sooooo gut ausskenne..mach das nochnicht so lang aber ich kenne mich in den grundfunktionen denk ich soweit schon ganz gut aus 🙂

    Vielen Dank jetzt schonmal

    mfg Kellykiller



  • Ja, ist möglich.



  • Kellykiller schrieb:

    das ich mich in C nochnicht sooooo gut ausskenne..mach das nochnicht so lang aber ich kenne mich in den grundfunktionen denk ich soweit schon ganz gut aus 🙂

    ziemliche selbstüberschätzung imho, sorry.

    zum problem:

    int i;
    for (i=0; i<20; i+=2)
    {
    ...
    }

    oder so (igit):
    int i;
    for (i=0; i<20; i++)
    {
    if (!i%2) continue;
    ...
    }



  • primi schrieb:

    zum problem:

    Ich glaube, das hast du nicht verstanden 😉



  • Den gesamten Bereich durchlaufen (for), jede Zahl in einen String umwandeln (sprintf, itoa) und dann überprüfen, ob dort die '2' enthalten ist (strchr) - reicht das als Anhaltspunkt?



  • zutaten:
    - eine laufvariable (ganzzahl)
    - zwei variablen fuer den bereich (ganzzahl)
    - eine zeichenvariable fuer das gesuchte zeichen/ziffer
    - ein loop, bevorzugt for-loop
    - sprintf, if, strchr, printf

    edit: war ich wohl zu langsam...



  • Interessant wären vielleicht auch noch folgende Zutaten:

    - % (Modulo)
    - / (Division)

    Damit man nicht alles erst in einen String klatschen muss.



  • Eine Stringumwandlung würde das ding sowieso mit % und / in die Stellen zerlegen. Wenn man dieses verfahren nun ein klein wenig umschreibt, kommt man zu lösung:

    int HasDigit(int value, int digit)
    {
      while (value) {
        if ((value % 10) == digit) return 1;
        value /= 10;
      }
      return 0;
    }
    

    Wenn man noch nicht so recht einen plan hat ist das Problem aber gar nicht so trivial, sodass ich doch mal nen code geschrieben habe. Allerdings solltest du dir selbst denn Gefallen tun und das Ding verstehen und nicht nur per Copy & Paste benutzen.

    Gruß
    template


Anmelden zum Antworten