编写函数 int fun(int x, int *pp),其功能是,求出能整除X 求大神帮忙 谢谢了

2024-12-19 19:00:22
推荐回答(5个)
回答1:

int fun(int x, int *pp){
int i,count=1;*pp++=1;
for( i=3;i<=x;i+=2) /* 偶数已经滤除了,只算奇数 ,计算x本身,不计算本身,改成 i<=x/2 */
if( !( x % i) ){ *pp++=i;count++;}
return count;
}

#include
int main(){
int x=30;
int i;
int pp[15];
int n=fun(x,pp);
printf("%d\n",x);/* 输出原数 */
for (i=0;i printf("%d ",pp[i]); /* 输出满足条件的数组
printf("\n%d\n",n); /* 输出个数 */
return 0;
}
PS:这个要求有问题,没有输入条件,先说输出条件
这个原数组在哪里啊!
要求:(1)输出原数组、满足条件的数组和和个数,
在vc++下运行这个要求没用!

回答2:

int fun(int x, int *pp)
{
int i, ret;
ret = 0;
for(i = 1; i <= x/2; i++) {
if(x % i == 0 && i % 2 != 0) {
*pp = i;
++pp;
++ret;
}
}
return ret;
}
测试通过,希望对你有帮助,有什么疑问可以再交流。

回答3:

int fun(int x, int *p)
{
int i,j;
for(i=1,j=0; i
{
if(x%i == 0)

p[j++] = i,printf("%d ",i);//如果能整除的话, 就保存在数组p中,并打印该值

}
return j+1; //返回这些整数的个数,因为j是从0开始的,所以加1

}

回答4:

int fun(int x, int*pp)
{
int iCnt = 0;
char code='+';
if(x<0)
{
x = -x;
code = '-';
}
for(int i=1; i {
if(x%i==0)
{
*pp++ = i*((code=='+')?1:(-1));
iCnt++;
}
}
return iCnt;
}

回答5:

一看到指针就头疼.....楼上几位注意一下指针啊, 有指针的情况下可以不用返回值,直接定义个变量来接受指针的值把.