我有这段代码:
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。 提前致谢。 我看到了一些类似的主题,但我找不到合适的解决方案。
答案 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