quersumme code fehler



  • was stimmt an folgendem nicht?

    #include <stdio.h>
    #include <conio.h>
    
    while(zahl!=0)
    {
        q=q+zahl%10;
        zahl=zahl/10;
        getch(); 
    }
    

    bitte um hilfe



  • Frag doch mal einen Compiler, der wird es Dir schon sagen.

    Kurz: Da fehlt eigentlich alles, was wichtig ist (Main-Funktion, Variablendefinitionen und Initialisierungen)



  • #include <stdio.h>
    #include <conio.h>
    
    main()
    while (zahl!=0)
    {
        q=q+zahl%10;
        zahl=zahl/10;
        getch(); 
    }
    

    und was fehlt hier noch?
    printf oder was?



  • #include <stdio.h>
    #include <conio.h>
    
    int main() {
      int zahl;
      while (zahl!=0) {
        q=q+zahl%10;
        zahl=zahl/10;
        printf("zahl = %i", zahl);
        getch();
      }
    
      return 0;
    }
    


  • blaa
    da gibts nen fehler bei

    q=q+zahl%10;
    

    kA wieso und weshalb



  • Öh, noch nicht ganz wach.. -.-

    #include <stdio.h>
    #include <conio.h>
    
    int main() {
      int zahl;
      int q;
      while (zahl!=0) {
        q=q+zahl%10;
        zahl=zahl/10;
        printf("zahl = %i", zahl);
        getch();
      }
    
      return 0;
    }
    

    Wobei das eh relativ sinnbefreit ist.
    Was willst Du damit bezwecken? 😉



  • Hm. Also einmal Wikipedia bemühen gibt doch genügend Information zur Bildung der Quersumme:

    #include <iostream>
    
    int quersumme(int zahl)
    {
      if( zahl < 10 )
      {
          return zahl;
      }
      return quersumme( zahl / 10 ) + zahl  % 10;
    }
    
    int main(int argc, char* argv[])
    {
        int zahl = 5765; // Ein Beispiel. Zahl einlesen musst du dann selber machen.
        std::cout << quersumme( zahl ) << std::endl;
    }
    

    Edit: Oder halt nicht rekursiv:

    int quersumme2(int zahl)
    {
        int q = zahl % 10;
        do
        {
            zahl /= 10;
            q    += zahl % 10;
        }while( zahl >= 10 );
        return q;
    }
    

Anmelden zum Antworten