关于输出结果不同的问题

这是我写的一个打印菱形的代码,但是呢我发现在我的电脑上按Ctrl+F5执行的结果与F10一步步调试的结果不同,前者输出不符合预期,后者则正确,而在学校机房执行则两者都是正确的,请问为什么?又该如何解决?这是CtrlF5不符合预期的。

img


#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>



int main()
{
    char k[]=" ";
    char arr1[]="                                        ";
    char arr2[]="*******************";
    int len=strlen(arr1);
    int left=0;
    int right=len;
    char* p=&arr1[len/2];
    int i,j;
    for(i=0;p+i<&arr1[len];i++)//打印行(指针写法)
    {
        *(p+i)=arr2[0];//准备要打印的行,即替换arr1中元素
        *(p-i)=arr2[0];
        printf("%s\n",arr1);
    }
    while(left<=right)//(下标写法)
    {
        arr1[left+1]=k[0];
        arr1[right-1]=k[0];
        printf("%s\n",arr1);
        left+=1;
        right-=1;
    }
return 0;
}

这是F10正确的

img

只是 Ctrl+F5 的时候控制台显示得有问题而已,不是代码的问题。估计是 vs 自己的 bug。