Frage zu for in while
-
'=' ist der Zuweisungsoperator.
'==' ist der Vergleichsoperator.if(trigonal = x*x) {} // Hier prüfst du NICHT ob trigonal gleich x*x ist // sondern du weist trigonal den Wert von x*x zu! if (trigonal == x*x) {} // So muss es richtig heißen!
-
Danke, funktioniert einwandfrei. Kann man auch ein Tab in den Cout - Befehl einbauen...?
-
Tabs werden mit der Escape-Sequenz "\t" dargestellt.
cout << "A\tB" << endl; // Zwischen A und B wir ein Tab ausgegeben. cout << "A" << "\t" << "B" << endl; // Das selbe hier auch.
-
Der Ausdruck sieht so aus: Es scheint auch ein mathematischen Problem vorzuliegen, oder er rechnet nicht richtig.
beginn
Zaehler= 1 Sum= 1 xq = 1 Sqrt = 1
Zaehler= 8 Sum= 36 xq = 36 Sqrt = 6
Zaehler= 49 Sum= 1225 xq = 1225 Sqrt = 35
Zaehler= 288 Sum= 41616 xq = 41616 Sqrt = 204
Zaehler= 1681 Sum= 1413721 xq = 1413721 Sqrt = 1189
Zaehler= 9800 Sum= 48024900 xq = 48024900 Sqrt = 6930
Zaehler= 57121 Sum= 1631432881 xq = 1631432881 Sqrt = 40391
Zaehler= 131072 Sum= 65536 xq = 65536 Sqrt = 256
Zaehler= 131528 Sum= 59938564 xq = 59938564 Sqrt = 7742
Zaehler= 132113 Sum= 137053849 xq = 137053849 Sqrt = 11707
Zaehler= 134033 Sum= 392554969 xq = 392554969 Sqrt = 19813
Zaehler= 135816 Sum= 633126244 xq = 633126244 Sqrt = 25162
Zaehler= 139392 Sum= 1125199936 xq = 1125199936 Sqrt = 33544
Zaehler= 141537 Sum= 1426497361 xq = 1426497361 Sqrt = 37769
Endet mit Zähler 200000Bei sqrt geht er bis 40391 nach oben, danach fällt er irgenwie wieder ab. Wie kann das sein?
-
Du arbeitest mit ints? Versuch long longs. Irgendwann ist halt Schicht im Schacht.
-
Dann sieht die Ausgabe so aus... Was bedeutet das?
run
[Switching to process 3013 local thread 0x2d03]
Running…
Beginn
Zaehler= 1 Sum= 1 xq = 1 Sqrt = 1
Zaehler= 8 Sum= 36 xq = 36 Sqrt = 6
Zaehler= 49 Sum= 1225 xq = 1225 Sqrt = 35
Zaehler= 288 Sum= 41616 xq = 41616 Sqrt = 204
Zaehler= 1681 Sum= 1413721 xq = 1413721 Sqrt = 1189
Zaehler= 9800 Sum= 48024900 xq = 48024900 Sqrt = 6930
Zaehler= 57121 Sum= 1631432881 xq = 1631432881 Sqrt = 40391
kill
quit
-
Keine Ahnung. Kenne deinen Code ja auch nicht.
-
Also, die Rechnung ist Okay, aber, warum bricht er mit "kill" und "quit" ab, die Befehle hab ich nicht programmiert, und er schreibt die Enzweile nicht, wie damals, als er noch weiterrechnete, aber wahrscheinlich falsch..
#include <iostream> using namespace std; int main (int argc, char * const argv[]) { int zaehler = 0; long long trigonal = 0; printf("Beginn \n"); while (zaehler < 200000) { trigonal = trigonal+zaehler; for (long long i=1, x = 1; x*x <= trigonal; i += ++x) // Der Erhöher muss dynamisch werden if (trigonal== x*x) cout << "Zaehler=\t " << zaehler <<"\t" <<" Sum= \t " << trigonal << "\tt" << " xq = \t " << x*x << "\t" << "Sqrt = \t " << x << endl; zaehler++; } printf("Das programm endet mit Zähler %d\n", zaehler); return 0; }
-
Benutz mal cpp-Tags.
-
Ich weiss gar nicht, was das ist...
-
brak schrieb:
Ich weiss gar nicht, was das ist...
[cpp] statt [code]