编写函数 void f(int x, int *p,int *q) 它的功能是求出x的偶数因子,并从小到大的顺序存放到p所指向的数组中,这些因子的个数通过形参q返回。这里假定p指向的数组空间足够大。
例如x为24,则一共6个偶数满足需求,分别是2,4,6,8,12,24.
#include<stdio.h>
void f(int x, int *p,int *q){
int i=2,j=0;
while(i<=x){
if(x%i==0){
*(p+j)=i;
j++;
*q=j;
}
i=i+2;
}
}
main(){
int x,a[100]={0},i,b=0;
scanf("%d",&x);
int *p=a,*q=&b;
f(x,p,q);
for(i=0;i<*q;i++){
if(a[i]){
printf("%d\t",a[i]);
}
}
}
如果写*q=NULL就没办法成功运行……为什么呢?