为什么输出的奇数只给我2个?
#include <stdio.h>#include <stdlib.h>
#define NUM 20
void getdata(int *a )
{ int i ;
for(i=0;i<=NUM;i++)
a[i]=rand()%101;}
void priarr(int *b,int x)
{int i;
for(i=0;i<x;i++)
{printf("%5d", b[i] );
if ((i+1)%10==0)printf("\n");}
printf("\n");}
void odd(int *a,int *d)
{int i,j;
for(i=0,j=0;i<NUM;i++)
{if(a[i]%2!=0){d[j]=a[i];j++;}}
}
main()
{int j,p[NUM], q[j];
getdata(p);
printf("output %d random numbers:\n",NUM);
priarr(p,NUM);
odd(p,q);
printf("output odd numbers:\n");
priarr(q,j);
system("PAUSE");
return 0;
}
程序读入随机数组后,但是输出的奇数却只有两个。自己看了半天了,还是不知道哪儿出了问题,貌似是j++没有运作,可是怎么改呢?