C 为什么调试时一切正常,运行时不能正常显示?

代码如下

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int rArray[20],i,j,a,t;
    char cArray[51]={0};
    
    for(i=0;i<20;i++)
    {
        rArray[i]=rand()%50+1;
    }
    for(i=0,a=0;i<20;i++)
    {
        a++;
        printf("[%2d]%2d ",a,rArray[i]);
        for(j=0;j<rArray[i];j++)
        {
            printf("*");
        }
        printf("\n");
    }
    
    printf("由大到小排序如下\n");
    
    for(j=0;j<20;j++)
    {
        for(i=0;i<(20-j);i++)
        {
            if(rArray[i]<rArray[i+1])
            {
                t=rArray[i];
                rArray[i]=rArray[i+1];
                rArray[i+1]=t;
            }
        }
    }
    for(i=0,a=21;i<20;i++)
    {
        a--;
        printf("[%2d]%2d ",a,rArray[i]);
        for(j=0;j<rArray[i];j++)
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

调试时

img


运行时

img