为什么要打印错误的数组值?

时间:2016-07-05 16:48:28

标签: c

出于某种原因,我在底部创建的嵌套for循环似乎打印出错误的第一个值(给我3,当它应该是8)。然而,当我只是printf(在底部)时,我得到了正确的价值。不确定我的代码有什么问题。

#include <stdio.h>

int main(void)
{
    int d;
    printf("Please input dimensions: (between 3 and 9, inclusive): \n");
    scanf("%i", &d);

    int array[d][d];

    int k = 1;

    for (int i = 0; i < d; i++)
    {
        for (int j = 0; j < d; j++)
        {
            array[i][j] = (d * d) - k; //d^2 doesn't work to square a function
            k++;
        }
    }

    for (int z = 0; z < d; z++)
    {
        for (int y = 0; y < d; y++)   
        {
            printf("%i\n", array[z][y]);
        }      
    }

    printf("%i\n", array[0][0]);
    printf("%i\n", array[0][1]);
}

编辑:对不起,伙计们,正在打印的最高价值是我自己的输入。我只是认为这是第一个被打印的价值。

1 个答案:

答案 0 :(得分:2)

你确定你没有看自己的输入吗?我剪切并粘贴并看到:

Please input dimensions: (between 3 and 9, inclusive): 
3
8
7
6
5
...

3实际上是我键入的内容并得到回应。