online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
/****************************************************************************** Welcome to GDB Online. GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl, C#, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog. Code, Compile, Run and Debug online from anywhere in world. *******************************************************************************/ #include <stdio.h> #include <stdlib.h> int bits; int c_sum[5],r_sum[5],d_sum[2]; int grid[5][5]; void show_me(){ int c,r; printf(">!%18d\n>! ",d_sum[1]); for(r=0;r<5;++r){ for(c=0;c<5;++c) printf("%2d ",grid[r][c]); printf("%2d\n>! ",r_sum[r]); } for(c=0;c<5;++c) printf("%2d ",c_sum[c]); printf("%2d\n\n",d_sum[0]); } int valid(int col,int row,int i){ int n,s,e,w; int ne,se,nw,sw; if(col>0){ w=abs(grid[row][col-1]-i)>3; if(row>0)nw=abs(grid[row-1][col-1]-i)>3; if(row<4)sw=abs(grid[row+1][col-1]-i)>3; } if(col<4){ e=abs(grid[row][col+1]-i)>3; if(row>0)ne=abs(grid[row-1][col+1]-i)>3; if(row<4)se=abs(grid[row+1][col+1]-i)>3; } if(row>0)n=abs(grid[row-1][col]-i)>3; if(row<4)s=abs(grid[row+1][col]-i)>3; switch(row){ case 0: case 4: switch(col){ case 0: return e; case 2: return e&w; case 4: return w; } case 1: case 3: switch(col){ case 0: return n&s&ne&se; case 4: return n&s&w&nw&sw; default: return n&s&w&ne&se&nw&sw; } case 2: switch(col){ case 0: return 1; case 1: return e&w; default: return w; } } return 0; } void recur(int col, int row){ int i; for(i=1;i<26;++i){ if(r_sum[row]+i>65)return; if(c_sum[col]+i>65)return; if(col==4 && r_sum[row]+i!=65)continue; if(row==1 && col>2 && c_sum[col]+i!=65)continue; if(bits&1<<i)continue; if(valid(col,row,i)==0)continue; bits^=1<<i; bits^=1<<(26-i); grid[row][col]=i; grid[4-row][4-col]=26-i; r_sum[row]+=i; r_sum[4-row]+=26-i; c_sum[col]+=i; c_sum[4-col]+=26-i; if(col==row)d_sum[0]+=26; if(col+row==4)d_sum[1]+=26; switch(row){ case 0: if(col==4)recur(0,2); else recur(col+2,0); break; case 2: if(col==1)recur(0,1); else recur(col+1,2); break; case 1: if(col==4)show_me(); else recur(col+1,1); break; } r_sum[row]-=i; r_sum[4-row]-=26-i; c_sum[col]-=i; c_sum[4-col]-=26-i; if(col==row)d_sum[0]-=26; if(col+row==4)d_sum[1]-=26; bits^=1<<i; bits^=1<<(26-i); } } int main() { grid[0][1]=10; grid[0][3]=12; grid[2][2]=13; grid[4][1]=14; grid[4][3]=16; bits=93<<10; r_sum[0]=22; r_sum[2]=13; r_sum[4]=30; c_sum[1]=24; c_sum[2]=13; c_sum[3]=28; d_sum[0]=13; d_sum[1]=13; recur(0,0); 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