Помимо вашего вопроса программа недействительна.
Допустимый диапазон индексов для объявленного в программе массива: [0, 1000)
.
Однако в этом цикле
for(i=0;i<=1000;i++)//accepting input
scanf("%d",&a[i]);
вы пытаетесь получить доступ к элементу с индексом, равным 1000, хотя в массиве такого элемента нет.
Если ваш компилятор поддерживает массивы переменной длины, вы можете объявить массив с количеством элементов, введенных пользователем.
В этом случае программа может выглядеть как
#include <stdio.h>
int main( void )
{
size_t n;
printf( "Enter the size of an array (0 - exit): " );
if ( scanf( "%zu", &n ) == 1 && n != 0 )
{
int a[n];
for ( size_t i = 0; i < n; i++ ) scanf( "%d", &a[i] );
putchar( '\n' );
for ( size_t i = n; i != 0; i-- ) printf( "%d ", a[i-1] );
putchar( '\n' );
}
}
Вывод программы может выглядеть как
Enter the size of an array (0 - exit): 10
9 8 7 6 5 4 3 2 1 0
Обратите внимание на звонок printf
printf( "%d ", a[i-1] )
^^^
Его можно заменить на следующие два вызова функций
for ( size_t i = n; i != 0; i-- )
{
printf( "%d", a[i-1] );
putchar( ' ' );
}