#1 23. Januar 2011 Bitte um Hilfe!(N-Damen Problem) Code: #include "nQueen.h" #include <stdio.h> int position(struct snQueen *pqn) { int row = pqn->Lastpos.ilast_r; int col = pqn->Lastpos.ilast_c; int a; int b; pqn->iHit=0; //check if queen is under attack by a queen upper for(a=row ; a > 0 ; a--) { if(pqn->iChessboard[a-1][col] == 6) { pqn->iHit = 1; a=-1; } } if(pqn->iHit == 0) { a =row; b =col; //check if queen is under attack by a queen diagonal right while(a > -1 && b < pqn->siBoardsize) { if(pqn->iChessboard[a][b] == 6) { pqn->iHit=1; a=-1; } a--; b++; } } if(pqn->iHit == 0) { a=row; b=col; //check if queen is under attack by a queen diagonal left while( a > -1 && b >= 0 ) { if(pqn->iChessboard[a][b] == 6) { pqn->iHit = 1; a=-1; } a--; b--; } } return 0; } Bei jeder If anweisung steht ja der pointer auf chessboard[a]==6. 6 is im ascii code "pic",Karten und im Anschluss Code: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include "dll.h" #include "nQueen.h" char cresult(struct snQueen *pqn) { int iRow_result; int iCol_result; char cQuit = 0; iRow_result=pqn->iQueencounter; iCol_result=0; //Big loop ends with 'e' or 'b' or Boardsize is reached while(cQuit != 'e' && iCol_result < pqn->siBoardsize && cQuit != 'b') { //set queen pqn->Lastpos.ilast_c= iCol_result; pqn->Lastpos.ilast_r= pqn->iQueencounter; //check if attack position(pqn); //if queen not attack set next one if(pqn ->iHit == 0) { //with 6 you print this symbol what is in use pqn->iChessboard[pqn->iQueencounter][iCol_result] = 6; pqn->iQueencounter++; //if queen < Boardsize set her one row up -> check again if(pqn->iQueencounter != pqn->siBoardsize) { pqn->Lastpos.ilast_r = pqn->iQueencounter; cQuit=cresult(pqn); } else { pqn->iSumofSolution++; if(_kbhit() != 0) { cQuit=_getch(); } //in mode manual it waits till you entered any button or 'e' 'b' if(pqn->mode == eManual) { print_result(*pqn); _gotoxy(65,8); textcolor(GREEN); printf("%i",pqn->iSumofSolution); ///< prints number of Solution step by step cQuit = _getch(); } //of savemode is on call fct Savefile if(pqn->solution_save == eSave_on) { SaveFile(pqn->siBoardsize, pqn->iSumofSolution, pqn->cfilename, pqn->iChessboard); } } pqn->iChessboard[iRow_result][iCol_result] = 0; pqn->iQueencounter--; } iCol_result++; } return(cQuit); } in der Zeile pqn->iChessboard[pqn->iQueencounter][iCol_result] = 6; wird das Pic gedruckt! Nun meine Frage wieso Druck er mir das Pic ? Wo besteht der zusammenhang beim druck? es gibts ja kein printf? Danke schonmal im vorraus + Multi-Zitat Zitieren