C++问题啊好难好难

小明刚学会奇数与偶数的判断方法,他的家人便给他布置了这样的一个任务:

给定 N 个不超过 10000 的正整数,小明需要按顺序记住其中的奇数,最后逆序背诵出这些奇数。

但是,小明的记忆力不太好,他最多只能记住前面的 10 个奇数,后面的就记不住了。

请你编写一个程序,对于给定的 N 个正整数,输出小明最后背诵的奇数是哪些。

输入格式
第一行 N (1<=N<=1000)。

第二行 N 个不超过 10000 的正整数,用空格隔开。

输出格式
一行若干个数,用 1 个空格隔开,为小明的背诵结果。

样例输入
5
3 1 5 2 4
样例输出
5 1 3
样例输入
25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
样例输出
19 17 15 13 11 9 7 5 3 1

void main()
{
  int a[1000];
  int n,i;
  scanf("%d",&n);
  for(i=0;i<n;i++)
    scanf("%d",&a[i]);
  for(i=n-1;i>=0;i--)
  {
     if(a[i] %2 == 1)
        printf("%d ",a[i]);
  }
}

想看一下代码