向大神求教一个代码运行后与本人期望不符的小疑点

向大神求教一个代码运行后与本人期望不符的小问题
本人疑惑代码如下:

#include<stdio.h>
int main()
{
    int n,i,t;
    int a[10000]= {0};
    for(i=2; i<10000; i++)//建立10000以内的素数表
        if(!a[i])
            for(t=i+i; t<10000; t+=i)
                if(!a[t])
                    a[t]=1;

    for(i=1;i<10000;i++)//输出10000以内的素数
    if(a[i]==0)
    printf("%d\n",i);
    
    return 0;
}

为什么运行后输出不是从2开始,反而从很大的数开始输出呢?求指点迷津
------解决思路----------------------
你把%d\n换成%d空格试试。。向大神求教一个代码运行后与本人期望不符的小疑点
------解决思路----------------------
引用:
Quote: 引用:

你把%d\n换成%d空格试试。。向大神求教一个代码运行后与本人期望不符的小疑点


换成空格输出就正常了,这是为何呢?求指点

10000以内的素数太多,黑窗口只有这么大,最早输出的,就无法看到了。
素数从2开始,建议从i=2,开始输出