x,y,i,j,s;\x0d char a[9][99],b[99];\x0d main(){\x0d x=strlen(gets(a[++y]+1));\x0d for(;gets(a[++y]+1););--y;\x0d for(i=1;i<y+1;++i){\x0d for(j=1;j<x+1;++j){\x0d s=(a[i-1][j-1]+a[i-1][j ]+a[i-1][j+1]\x0d +a[i ][j-1] +a[i ][j+1]\x0d +a[i+1][j-1]+a[i+1][j ]+a[i+1][j+1])%48;\x0d if(a[i][j]==48 && s==3)b[j-1]=49;\x0d else if(a[i][j]==49 && (s==2 || s==3))b[j-1]=49;\x0d else b[j-1]=48;\x0d }\x0d puts(b);\x0d }\x0d }\x0d
Note that non-ascii characters in the above source code will be escaped (such as \x9f).