Vector funktioniert nicht
-
Was soll
Teiler()ergeben? Meinst du vielleicht
Teiler.begin()
-
Im Vector "Teiler" sollen die einzelnen Teiler als Elemente enthalten sein und ausgelesen werden ...
ich versteh ehrlich auch nicht, was der Integer it da soll?
in Zeile 10 wird der Container initialisiert ..
in Zeile 27 wird er gefüttert mit der Variablemn quot : "Teiler.push_back(quot);"
in Zeile 35 soll er über eine Schleife ausgelesen werden, was
in Zeile 37 dann gedruckt wird
-
Vertehen wir auch nicht, was ein int dort soll. Du willst wohl eigentlich eher einen iterator...
Mein Rat: Leg dir ein gutes C++ Buch zu und arbeite es durch.
-
Hab von Dirk louis C++ vor mir liegen ...
-
Na dann...ich kenn das Buch nicht, aber dort steht das sicher nicht so drin, oder? Falls doch: Buch besser wegwerfen und ordentliches Buch kaufen...

-
Läuft jetzt:
Frage, Wie bekomme ich die 0 am Anfang der Teilersumme und das letzte + weg?
Geben Sie die zu testende Zahl ein: 360
Macro Zahltester benennt Zahl:
360 ist der 1. Teiler der Zahl
180 ist der 2. Teiler der Zahl
120 ist der 3. Teiler der Zahl
90 ist der 4. Teiler der Zahl
72 ist der 5. Teiler der Zahl
60 ist der 6. Teiler der Zahl
45 ist der 7. Teiler der Zahl
40 ist der 8. Teiler der Zahl
36 ist der 9. Teiler der Zahl
30 ist der 10. Teiler der Zahl
24 ist der 11. Teiler der Zahl
20 ist der 12. Teiler der Zahl
18 ist der 13. Teiler der Zahl
15 ist der 14. Teiler der Zahl
12 ist der 15. Teiler der Zahl
10 ist der 16. Teiler der Zahl
9 ist der 17. Teiler der Zahl
8 ist der 18. Teiler der Zahl
6 ist der 19. Teiler der Zahl
5 ist der 20. Teiler der Zahl
4 ist der 21. Teiler der Zahl
3 ist der 22. Teiler der Zahl
2 ist der 23. Teiler der Zahl
1 ist der 24. Teiler der Zahl
360 hat 24 Teiler
0+360+180+120+90+72+60+45+40+36+30+24+20+18+15+12+10+9+8+6+5+4+3+2+1+ = 1170 ist die Teilersumme
#include <iostream> #include <vector> using namespace std; int quot; long long Testzahl; int Zehler=0; int TS=0; vector<int>Teiler(1); int main () { cout<< "Geben Sie die zu testende Zahl ein: "; cin>>Testzahl; cout<<"Macro Zahltester benennt Zahl:\n"; getchar(); for(int i=1;i<=Testzahl;i=i+1) { quot=Testzahl/i; if(0==Testzahl%i) { Zehler=Zehler+1; Teiler.push_back(quot); cout<<" "<<quot <<" ist der "<<Zehler<<". Teiler der Zahl \n"; TS=TS+quot; } } cout<<" "<<Testzahl<<" hat "<<Zehler<<" Teiler \n"; //cout<<"Die TS ist: "<<TS<<" = "; for(auto it=Teiler.begin();it!=Teiler.end();it++) { cout<<*it<<"+"; } cout<<" = "<<TS<<" ist die Teilersumme"; fflush(stdin); getchar(); }
-
Fraeg 1 ist gelost, bei der Initialisierung des Vectors muß eine Null als Argument hin!
Jetzt noch das letzte Plus....

-
cout<<*it; if( it!=Teiler.end()-1 ) cout<<"+";
-
Ein Problem ist noch:
Der Computer sagt immer, wenn ich das Programm nochmal aufrufe:
“GroßzahlTester” is already running. Click Stop to terminate and launch a new instance.
und das, obwohl ich ein return (0) eingefügt habe.
Wie kann ich das Programm beenden?
-
Computer neustarten
-
Wieso sagt er nicht. "Programm ist beendet" .....