Code Bye

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

 

本人疑惑代码如下:

#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开始,反而从很大的数开始输出呢?求指点迷津

10分
你把%d\n换成%d空格试试。。
引用 1 楼 cs_dingz 的回复:

你把%d\n换成%d空格试试。。

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

30分
引用 2 楼 ma815841356 的回复:
Quote: 引用 1 楼 cs_dingz 的回复:

你把%d\n换成%d空格试试。。

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

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

引用 3 楼 zhangxiangDavaid 的回复:
Quote: 引用 2 楼 ma815841356 的回复:
Quote: 引用 1 楼 cs_dingz 的回复:

你把%d\n换成%d空格试试。。

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

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

谢谢指点


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明向大神求教一个代码运行后与本人期望不符的小问题