以相反的顺序输出数组中的元素

时间:2016-10-23 19:23:17

标签: c for-loop reverse

我试图让程序以相反的顺序输出数字1,2,3,4。 但是,我一直得到奇怪的结果,我不知道为什么。 这就是我到目前为止所做的:

#include <stdio.h>
#define NO_OF_ELEMENTS 4

int main()
{
    int numbers[NO_OF_ELEMENTS];
    int i, j;

    printf("Type a number and hit enter:\n");

    /* Input each number */
    for(i = 0; i < NO_OF_ELEMENTS; i++)
    {
        scanf("%d", &numbers[i]);
    }

    /* Print each number in reverse order */
    for(j = NO_OF_ELEMENTS; j > 0; j--)
    {
        printf("%d\n", &numbers[j]);
    }

    return(0);
}

该程序的输出如下:

Program Running

任何有助于解释代码无法正常工作的帮助都将非常感谢。

固定

/* Print each number in reverse order */
for(j = NO_OF_ELEMENTS; j > 0; j--)
{
    printf("%d\n", numbers[j - 1]);

}

enter image description here

1 个答案:

答案 0 :(得分:1)

对于printf,您不需要&,将其删除即可。

第二个问题需要从NO_OF_ELEMENTS - 1开始,因为数组从0开始,到3结束时有4个项目。

enter image description here