如何将int数据存储到C中的数组中?

时间:2014-02-08 18:15:03

标签: c arrays

我写了这个简单的代码来计算从1到1000的数字,它们是3的倍数,然后将它们存储在一个数组中然后打印数组。

 #include <stdio.h>

    void main(void){

    int i,x,y;
    int A[1000];

    for(i=1;i<1000;i++){
    x=i%3;

    if(x==0){

        A[i]=i;
        printf("%d\n",A[i]);

       }
      }
    }

代码工作正常,但我想问的是,数组是否会开始存储A [0]或A [1]的值?因为循环计数器i = 1。

3 个答案:

答案 0 :(得分:1)

由于您设置数组条目值的唯一位置是:

A[i]=i;

并且我从1开始并且没有以任何方式设置,第一个要设置的条目当然是A[1]

答案 1 :(得分:1)

当i = 1时,数组将开始存储索引1的值作为循环开始。 索引0处的值将保持不变。 但你的逻辑错了。如果你打印数组A [],它将打印垃圾值 对于不是3的倍数的数组索引。

答案 2 :(得分:1)

你说“代码工作正常”。这让我大吃一惊。

我不确定你想对你的数据做什么,但是你可能想要这样的东西你正在寻找一个3的倍数的数字数组:

#include <stdio.h>

    int main(void){  // <<<< int, not void!

    int i,x,y;
    int A[1000];
    y = 0;
    for(i=0;y<1000;i++)  // <<<<< keep looping until array is full, --> test for y not i
    {
      if(i%3 == 0)       // <<<<< no need to assign the result to x
      {
        A[y++]=i;        // fill array only when i%3 == 0; only then increment index count
        printf("Value %d is divisible by 3\n", i);
      }
    }
}