为何vc6上可以完美运行的代码到vs2015上编译可通过但不能达到预期效果

为什么vc6上可以完美运行的代码到vs2015上编译可通过但不能达到预期效果?
本帖最后由 SeasonJoe 于 2015-10-28 14:39:57 编辑
比如下面这段代码(忽略scanf函数等在vs2015上的支持问题),在vc6上可以完美运行,但在vs2015中输入一个数直接程序就结束(不是一闪没了,是无法输出预期的结果)
#include<stdio.h>
#include<string.h>

int main()
{
    int i, ok, abc, de, x, y, z, count;
    char s[20], buf[99];
    //printf("%c\n", 999);?的ASCII码是999.
    while(scanf("%s", s) == 1)
    {
        count = 0;
        for(abc = 111; abc <= 999; abc++)
            for(de = 11; de <= 99; de++)
            {
                x = abc*(de%10);    //x存储与各位相乘的结果
                y = abc*(de/10);    //y存储与市十位相乘的结果
                z = abc*de;         //z存储最终结果
                sprintf(buf, "%d%d%d%d%d", abc, de, x, y, z);
                ok = 1;
                for(i = 0; i < strlen(buf); i++)
                    if(strchr(s, buf[i]) == NULL)//如果在s中buf[i]不存在,ok置0
                        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;
}
------解决思路----------------------
VS2015表示并没有什么问题
为何vc6上可以完美运行的代码到vs2015上编译可通过但不能达到预期效果