böse 7



  • ja was ich eingeben muss damit des programm erkennt dass keine sieben enthalten is und dass die zahl net durch 7 teilbar is weiß ich.aber wie geb ich des mit der quersumme ein.und was muss ich machen dass die zahlen von 100-999 gehen?



  • Dann zeig schonmal was du hast.



  • her damit schrieb:

    Dann zeig schonmal was du hast.

    Genau, du wirst ja einen Programmrahmen und die Eingabe der Zahl hinbekommen, oder!?



  • is doch egal.dann sag wenigstens mal jemand was ich eingeben muss dass des programm erkennt dass man nur zahlen zwischen 100-999 eingeben kann.bitte mann.muss des bis morgen hamm.



  • Nein. Das wird hier nicht gemacht. Bitte verlasse dieses Forum oder ändere dein Verhalten.



  • ey sorry aber ich hab kein plan. für euch ist des vielleicht voll easy, aber es gibt auch leute die gar kein peil haben.ich bräucht halt wenigstens den befehl mit den zahlen,dann lass ich euch zufrieden.wär echt nett.



  • Wenn du keinen Peil hast, dann hättest du vielleicht mal früher mit dem Lernen anfangen sollen.



  • if(zahl >= 100 && zahl <= 999) // tu was

    Aber wenn du das nicht hinbekommst zweifle ich, ob du den Rest alleine schaffst.



  • ey danke walli.hast mir sehr geholfen.ciao



  • rudi180 schrieb:

    wie des geht meldet euch bitte so schnell wie möglich.

    😃

    Meine 11 jahrige Tochter könnte schon weiter selber machen :p

    #include <iostream>
    #include <string>
    
    int main()
    {
      //
      //dein Code
      //
    }
    


  • rudi180 schrieb:

    is doch egal.dann sag wenigstens mal jemand was ich eingeben muss dass des programm erkennt dass man nur zahlen zwischen 100-999 eingeben kann.bitte mann.muss des bis morgen hamm.

    Wie, du hast so gut wie noch gar nicht angefangen? Das wird imho dann relativ eng für dich.
    Also folgendermaßen list überprüfst du, ob der eingegebene Wert im Intervall zwischen 100 und 999 liegt.

    #include <iostream>
    using namespace std;
    
    int main()
    {
            cout << "\n Bitte Zahl >= 100 && <= 999 eingeben:\n";
            unsigned int nr;
            cin >> nr;
            if(nr >= 100 && nr <= 999)
                    cout << "\n  Zahl liegt im Intervall\n";
            else
                    cout << "\n  Zahl liegt NICHT im Intervall\n";
    
            return 0;
    }
    

    rudi180 schrieb:

    ja was ich eingeben muss damit des programm erkennt dass keine sieben enthalten is und dass die zahl net durch 7 teilbar is weiß ich

    Das ist doch schon was!

    Bezüglich der Quersumme solltest du mal die Forensuche (C++-Board) oder google quälen. (Ein Blick in die FAQ kann auch nicht schaden ;))

    //Edit: *grumml* [...] 😉

    Caipi



  • @rudi180

    Ich glaube dir kein Wort! Du hast alles hinbekommen nur nicht wie man die Eingabe von Zahlen die größer als 100 und kleiner als 999 sind? Da ist doch was faul! Raus mit der Wahrheit! 😡



  • rudi180 schrieb:

    ey sorry aber ich hab kein plan. für euch ist des vielleicht voll easy, aber es gibt auch leute die gar kein peil haben.ich bräucht halt wenigstens den befehl mit den zahlen,dann lass ich euch zufrieden.wär echt nett.

    Dann entspricht es eben deinem Kenntnisstand, dass du es nicht schaffst.



  • **😡 Wo ist der Code? 😡
    **
    MfG CSS



  • hehe mich würde an der stelle aber echt mal interessieren wie ich wenn ich ne z.b. 200 als zahl hab die 2, und die 2x0 da auslesen kann 😉
    Muss mans da zu nem char oder so machen ?



  • Mortal2006 schrieb:

    hehe mich würde an der stelle aber echt mal interessieren wie ich wenn ich ne z.b. 200 als zahl hab die 2, und die 2x0 da auslesen kann 😉
    Muss mans da zu nem char oder so machen ?

    Nicht ganz. Siehe C++-FAQ

    Caipi



  • ...nachdem du die Zahl in einen String umgewandelt hast musst du diesen noch durchsuchen. Indem du jedes Zeichen mit dem gesuchten vergleichst (String als Array verwenden) oder gibt es eine eigene Funktion?

    Mit strcmp() wäre es auch noch möglich nur müsste man dann jedes Zeichen des Strings in ein char speichern.

    MfG CSS



  • Naja, es geht auch ohne Umwandlung in einen String. Hab mir da folgende Formel überlegt:

    Sei z die Zahl, deren i-te Stelle gesucht ist
    Sei n die Anzahl Ziffern von z
    Dann bekommt man die i-te Ziffer durch:
    (z / 10^(n-i)) % 10

    Dazu ein kleines Programm:

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int getNumber(unsigned int number, unsigned int length, int index) {
       return (int)(number / pow(10.0, (length-(double)index))) % 10;
    }
    
    int main() {
       int zahl = 45689231;
       for(int i=1; i < 9; i++)
          cout << i << ".te Stelle von " << zahl << " = " << getNumber(zahl, 8, i) << endl;
       cin >> i;
       return 0;
    }
    

    Nicht sehr hilfreich, aber mir war grad langweilig 😉



  • 1.ne möglichkeit ist, die quersumme so zu ermitteln wie das jeder normalbürger machen würde (naja man zählt zwar nicht jeden 100er und 10er einzeln, aber in dem fall macht das weniger umstände)

    int quersumme(int z)
    {
    int qs=0, h=z;// h(ilf) verhindert das du z selbst veränderst
    while (h>=100)
    {h=h-100;
    ++qs;
    }
    while(h>=10)
    {h=h-10;
    ++qs;
    }
    qs=qs+h;/* jetzt müsste nur noch die letzte ziffer übrig sein, also ist es einfacher direkt zu addieren*/
    return qs;
    }
    

    solltest du auch noch die quersumme der quersumme brauchen kannst du die funktion doppelt laufen lassen



  • Ich würde es etwas anders lösen. Die while-Schleifen sehen zwar gut aus nur bei größeren Zahlen geht es schief und muß erweitert werden 10tausender 100tausender ...

    #include <iostream>
    #include <math.h>
    
    using namespace std; 
    
    inline int zehn_hoch(int i)
    {	
    	int k=1;
    	for(i;i>0;--i)
    		k*=10;
    	return k;
    }
    
    int main ()
    {
    int qs=0, zahl;
    cout<<"Eingabe: ";
    cin>>zahl;
    for(int exp=log10(zahl);exp>=0; --exp)
    {	
    	int tmp=zahl/zehn_hoch(exp);
    	zahl%=zehn_hoch(exp);
    	qs+=tmp;
    }
    
    cout<<qs<<endl;
    return 0; 
    }
    

    Gruss


Anmelden zum Antworten