竖式问题计数器,调试出错

竖式问题的官方代码是如下:
#include

int main()

{

int abc, de, x, y, z, i, ok, count = 0;

char s[20], buff[100];

scanf("%s", s);

for (abc = 111; abc < 999; abc++)     
{     
     for (de = 11; de < 99; de++)     
    {     
        x = abc * (de % 10);     
        y = abc * (de / 10);     
        z = abc * de;  

        sprintf(buff, "%d%d%d%d%d", abc, de, x, y, z);   //把这五个数字作为字符放入buff数组中 ,连接为一条字符串   
        ok = 1;   

        for (i = 0; i < strlen(buff); i++)     
            if (strchr(s, buff[i]) == NULL)     
                ok = 0;  

        if (ok)     
        {     
            printf("<%d>\n", ++count);     
            printf("%5d\nX%4d\n-----\n%5d\n%4d\n-----\n%5d\n\n", abc, de, x, y, z);     
        }     
    }  

}  

printf("The number of solutions = %d\n", count);     
return 0;     

}

但是让我想不通的是,如果我把输出时的计数器count先在前面写成count=count+1;或者是++count;然后输出时直接写成count,调试的时候结果会出现很多很多竖式停不下来,这是为什么呢?

https://wenku.baidu.com/view/4e0267c1ba0d4a7303763a26.html