alle natürlichen Teiler einer Zahl bestimmen
-
Hallo liebe C++ Experten,
bei der Lösung alle Teiler einer Zahl zu finden bekomme ich mit diesem Code immer nur die 1 als Antwort. Woran liegst? Habt ihr eine Idee?
Habe es auch schon mit einer Do-While Schleife versucht mit demselben Ergebnis.#include<iostream>
using namespace std;
int main (void)
{ int n,z;
cout << "Geben Sie eine Zahl ein, deren natuerliche Teiler gefunden werden sollen!" << endl;
cin >> n ;for (int i=1 ; i<= n ; i++ )
{
z = n % i;if (z==0)
{cout << i << " ist Teiler von " << n << endl;}//else if( n % i != 0 )
//{cout << i << " ist kein Teiler von" << n << endl;}
}cin.sync();
cin.get();
return 0;
}
-
Häh? Da Programm gibt doch alle Teiler aus: http://ideone.com/qFMHTa
-
Da kannste lange nach dem Fehler suchen, hihi.
Geben Sie eine Zahl ein, deren natuerliche Teiler gefunden werden sollen! 100 1 ist Teiler von 100 2 ist Teiler von 100 4 ist Teiler von 100 5 ist Teiler von 100 10 ist Teiler von 100 20 ist Teiler von 100 25 ist Teiler von 100 50 ist Teiler von 100 100 ist Teiler von 100Es läuft nämlich.
-
Vielen Dank fürs Ausprobieren und die Antworten.
Ich bekomme nach wie vor immer nur die 1 als Ergebnis ausgegeben.
Benutze DEV C++.
Welches Prog nutzt ihr?
-
DevC++ ist total veraltet, nimm den Nachfolger CodeBlocks oder wenn du auf Windows unterwegs bist ist das NonPlusUltra als Eierlegendewollmilchsau Visual Studio, das ist als Express auch kostenlos
-
DK12 schrieb:
Benutze DEV C++.
Welches Prog nutzt ihr?Dev-C++ ist veraltet. Es gibt eine neue Variante (die auch den neuen Sprachstandard unterstützt), nach der kannst du suchen.
Ich nutze CodeBlocks, der liefert auch einen aktuellen Compiler mit.
Edit: ... zu langsam.
-
Das kann aber nicht an DevC++ liegen.
Schon gar nicht daran, dass es veraltet ist. Das Programm hätte so wie es dasteht wahrscheinlich schon 1986 funktioniert.
-
DK12 schrieb:
Ich bekomme nach wie vor immer nur die 1 als Ergebnis ausgegeben.
Dann wird das Problem definitiv irgendwo an dir liegen. Vielleicht kann der Compiler nicht gestartet werden o.ä., und der ältere, früher kompilierte Code wird aufgerufen... der Code an sich funktioniert jedenfalls.
Das Programm hätte so wie es dasteht wahrscheinlich schon 1986 funktioniert.
Ich dachte, damals hatten die Header noch ein .h hinten dran? :p
-
Skym0sh0 schrieb:
DevC++ ist total veraltet, nimm den Nachfolger CodeBlocks oder wenn du auf Windows unterwegs bist ist das NonPlusUltra als Eierlegendewollmilchsau Visual Studio, das ist als Express auch kostenlos
Hmm, diese Eierlegendewollmilchsau definiert sich aber eher durch stinkende Eier, kratzige Wolle, saure Milch und bitteres Fleisch.
-
Als Anfänger wird er mit dem Compiler selbst weniger aneinander geraten. Dafür wird er aber die IDE selbst als geil erachten.
Klar, wer mit variadischen Templates spielen will, den Compiler an seine Grenzen bringt usw. der ist mit GCC oder Clang besser dran. Aber dafür gibt es einfach keine bessere IDE als Visual Studio

-
Ok, jetzt fühl ich mich verarscht:
Visual Studio 2012 runtergeladen, Code kopiert, wieder nur die 1 als Ergebnis , grrrr
-
Ich denke, es liegt am Debugger. Kann das sein?
Welchen Win-Debugger nutzt Ihr?
-
Ich nutze, falls ich mal auf Windows bin, den GDB den MinGW mitliefert. Ich habe mich nicht informiert, es gibt anscheinend bessere, aber da weiß ich nicht bescheid. Code-Blocks hat da aber Macken, das nervt, daher möchte ich zum VC++ wechseln, der hat einen vortrefflichen Debugger.