online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <iostream> #include <vector> size_t count = 0; void printField( std::vector<unsigned>& field ){ for ( size_t i = 0; i < field.size(); ++i ){ for ( size_t j = 0; j < field.size(); ++j ){ std::cout << ( field.at(j) == i ? "Q ": "- " ); } std::cout << std::endl; } std::cout << std::endl; } bool testAll( std::vector<unsigned>& field, unsigned y, unsigned queensSet ){ for( unsigned x = 0; x < queensSet; ++x ){ if( field.at(x) == y //waagerechte Prüfung ||field.at(x) == y-( queensSet - x ) //diagonale Prüfung || field.at(x) == y+( queensSet - x ) ){ //diagonale Prüfung return false; } } return true; } //Rekursive Funktion void setQueenRec( std::vector<unsigned>& field, unsigned queensSet ){ //wenn alle Damen gesetzt wurden if( queensSet == field.size() ){ ++::count; printField(field); return; } for( unsigned y = 0; y < field.size(); ++y ){ //Test, ob die Dame in der nächsten Reihe gesetzt werden kann if( testAll( field, y, queensSet ) ) { field.at( queensSet ) = y; setQueenRec( field, queensSet+1 ); } } } void setQueen( std::vector<unsigned>& field ){ for( unsigned y = 0; y < field.size(); ++y ){ field.at(0) = y; //in der erste Reihe werden nacheinander die Damen gesetzt setQueenRec( field, 1 ); } } int main() { //speichert die Positionen der Damen std::vector<unsigned> field( 8, 0 ); setQueen( field ); std::cout << "Lösungen insgesamt: " << ::count<< std::endl; return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue