打印数组值没有地址

时间:2017-09-30 22:58:48

标签: c arrays printf

我有这段代码:

int main ()
{
    unsigned long x[1000][1000];
    unsigned long y[10]={0};
    unsigned long num = 10;
    unsigned long i=0,j=0,a=0, b=0;
    printf("Hello\n");

        char ch;

        for (j=2;j<=num;j++)
        {
         a=0;
             for(i=1;i<=num;i++)
             {
                 if(j%i==0)
                 a++;
             }
             if (a==2)
             {
                 sleep(0.100);
                 printf("\n %lu ", j);
                 y[i]=j;
                 printf("array: %lu", y[i]);
             }
         }


        for(b=1;b<=10;b++){
            printf("\n array[%lu]: %lu", b,y[b]);
        }

        sleep(0.300);
        scanf("%c",&ch);

    return 0;
}

这是输出:

Hello

 2 array: 2
 3 array: 3
 5 array: 5
 7 array: 7
 array[1]: 0
 array[2]: 0

但我不知道为什么在第二个循环中总是为数组值打印0。 提前致谢。 我看到了一些类似的主题,但我找不到合适的解决方案。

2 个答案:

答案 0 :(得分:0)

谢谢,数组索引是问题所在。对不起大家。 (b = 0; b <9; b ++)确定

答案 1 :(得分:0)

 y[i]=j;

当执行上述语句时,i = 11的值。

如果您将for(b=1;b<=10;b++)更改为for(b=1;b<=11;b++),则可以看到输出:

array[11]: 7