Bekomme Hello World nicht zum laufen
-
Vom devC++ rate ich dir ab, nimm eher codeBlocks oder gleich visual studio.
-
okay, ich habe jetzt codeblocks und auch hello world zum laufen bekommen.
Jetzt wollte ich mir ein anderes Problem vornehmen:
Ich möchte mit Probedivision die Primfaktoren einer Zahl in einem Array speichern.
Der Code sieht bisher so aus:#include <iostream> #include <math.h> int main(int argc, char**argv) { // Prints hello message... std::cout << "Hello CMake World!" << ","; int i=2; int s=600851475143; int savePrime [40]; int * pointSave=savePrime; while(i<sqrt(600851475143)) { while(s%i==0){ *pointSave=i; pointSave++; std::cout << i << ","; s=s/i; } i++; } return 0; }
nur kommt bei der Ausführung nur wieder das "Hello World", obwohl eigentlich auch die Teiler i ab und zu ausgegeben werden sollten. Irgendwelche Ideen, warum es nicht geht?
-
Wow, Netbeans und DevC++ - ist dann ja im Visual C++ Forum goldrichtig.
-
Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++ (alle ISO-Standards) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Gib mal statt des "," ein "\n" aus.
(und wenn du den C++ statt des Code-Buttons anklickst, wird der Code auch bunt)
-
ja, habe die "," durch "\n" ersetzt.
der code#include <iostream> #include <math.h> int main(int argc, char**argv) { // Prints hello message... std::cout << "Hello CMake World!" << "\n"; int i=2; int s=600851475143; int savePrime [40]; int * pointSave=savePrime; while(i<sqrt(600851475143)) { while(s%i==0){ *pointSave=i; pointSave++; std::cout << i << "\n"; s=s/i; } i++; } return 0; }
liefert den output (bild im link)
http://www.fotos-hochladen.net/view/outputgktjuxqym5.pngwarum wird der untere code ignoriert? Vielen Dank für Eure Hilfe
-
Deine Zahl ist wahrscheinlich zu groß für einen int. Hast du alle Compilerwarnungen an?
-
600851475143 braucht 40-Bit zur Darstellung.
int
ist unter Windows i.A nur 32-Bit breit (und da kommt noch das Vorzeichen weg)Du musst dir einen anderen Datentyp für s suchen.
Oder mit einem kleineren Wert arbeiten.
-
roflo schrieb:
Deine Zahl ist wahrscheinlich zu groß für einen int.
Eindeutig, 39,xy Bits... Wie gesagt, Warnungen an! In meinen CodeBlocks (keine Ahnung wie aktuell) unter -->Settings -->Compiler -->"Enable all common compiler warnings [-Wall]".
-
Ok, hatte die ganze Zeit in Codeblocks auf den "Run"-Button (sieht so ähnlich wie in eclipse mit java. so kann man sich täuschen O_O) statt auf "Build and Run"-Button.
Zum Glück gibt es jetzt Fehlermeldungen!
Es stimmt, dass die Zahl 600851475143 zu groß für den int Datentyp ist.
Habe den long long Datentyp entdeckt, dessen Maximum größer als 600851475143 ist.
Habe mein Problem jetzt gelöst. Danke für Eure Geduld und Hilfe.