online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <stdlib.h> #include <stdio.h> #include <stdbool.h> // Fonction d'affichage void affichage (int grille[9][9]) { for (int i=0; i<9; i++) { for (int j=0; j<9; j++) { printf( ((j+1)%3) ? "%d " : "%d|", grille[i][j]); } putchar('\n'); if (!((i+1)%3)) puts("------------------"); } puts("\n\n"); } bool absentSurLigne (int k, int grille[9][9], int i) { for (int j=0; j < 9; j++) if (grille[i][j] == k) return false; return true; } bool absentSurColonne (int k, int grille[9][9], int j) { for (int i=0; i < 9; i++) if (grille[i][j] == k) return false; return true; } bool absentSurBloc (int k, int grille[9][9], int i, int j) { int _i = i-(i%3), _j = j-(j%3); // ou encore : _i = 3*(i/3), _j = 3*(j/3); for (i=_i; i < _i+3; i++) for (j=_j; j < _j+3; j++) if (grille[i][j] == k) return false; return true; } bool estValide (int grille[9][9], int position) { if (position == 9*9) return true; int i = position/9, j = position%9; if (grille[i][j] != 0) return estValide(grille, position+1); for (int k=1; k <= 9; k++) { if (absentSurLigne(k,grille,i) && absentSurColonne(k,grille,j) && absentSurBloc(k,grille,i,j)) { grille[i][j] = k; if ( estValide (grille, position+1) ) return true; } } grille[i][j] = 0; return false; } int main (void) { int grille[9][9] = { {9,0,0,1,0,0,0,0,5}, {0,0,5,0,9,0,2,0,1}, {8,0,0,0,4,0,0,0,0}, {0,0,0,0,8,0,0,0,0}, {0,0,0,7,0,0,0,0,0}, {0,0,0,0,2,6,0,0,9}, {2,0,0,3,0,0,0,0,6}, {0,0,0,2,0,0,9,0,0}, {0,0,1,9,0,4,5,7,0} }; printf("Grille avant\n"); affichage(grille); estValide(grille,0); printf("Grille apres\n"); affichage(grille); }

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