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

编写函数 int fun(int x, int *pp),其功能是,求出能整除x且不是偶数的各整数,并按照从小到大的顺序放在pp指向的内存中,函数返回值为这些整数的个数。若x的值为30,数组中的数为1,3,5,15,函数返回4。
要求:(1)输出原数组、满足条件的数组和和个数
在vc++下运行。。。

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<stdio.h>
int main(){
int x=30;
int i;
int pp[15];
int n=fun(x,pp);
printf("%d\n",x);/* 输出原数 */
for (i=0;i<n;i++)
printf("%d ",pp[i]); /* 输出满足条件的数组
printf("\n%d\n",n); /* 输出个数 */
return 0;
}
PS:这个要求有问题,没有输入条件,先说输出条件
这个原数组在哪里啊!
要求:(1)输出原数组、满足条件的数组和和个数,
在vc++下运行这个要求没用!
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-26
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;
}
测试通过,希望对你有帮助,有什么疑问可以再交流。追问

哥们 你这个我运行了 怎么老是有一个错误啊

追答

什么问题,你写了main函数没有?还有穿进去的参数应该是个数组。你传对了么?

第2个回答  2013-02-26
int fun(int x, int *p)
{
int i,j;
for(i=1,j=0; i<x; i+=2) //既然不能为偶数,那么步进就改为2,都是奇数

{
if(x%i == 0)

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

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

}
第3个回答  2013-02-27
int fun(int x, int*pp)
{
int iCnt = 0;
char code='+';
if(x<0)
{
x = -x;
code = '-';
}
for(int i=1; i<x/2+1; i+=2)
{
if(x%i==0)
{
*pp++ = i*((code=='+')?1:(-1));
iCnt++;
}
}
return iCnt;
}
第4个回答  2013-02-26
一看到指针就头疼.....楼上几位注意一下指针啊, 有指针的情况下可以不用返回值,直接定义个变量来接受指针的值把.

...*pp),其功能是,求出能整除X 求大神帮忙 谢谢了
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<stdio.h> int main(){ int x=30;int i;int pp[...

编写函数 int fun(int x, int *pp),其功能是,求出能整除x且不是偶数的...
我的理解是 输出的是 数组为:1 3 5 15 个数为:4 int fun(int x, int *pp){ int i,j=0;for(i=1;i<=x;i++){ if(x%i==0&&i%2!=0)scanf("%d",&pp[j]);j++;} return j;}

c++求能整除x且不是偶数的各整数,并按照从小到大的顺序放在pp指向的内...
int fun(int x,int* pp){ int num=0;for(int i=1;i<=1000;i+=2){ if(x%i == 0){ pp[num] = i;num++;} } return num;} int main(){ int pp[1000];int x = 999;int num = fun(x,pp);for(int i=0;i<num;i++){ cout<<pp[i]<<endl;} return 0;} ...

急求!!!全国计算机等级考试二级C机考题库 附答案的最好 !急!!!_百度...
3: 第3题 请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[...

求C++高手!!!
3.请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。***4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符串中...

编写函数fun,函数原型为:int fun(int x)。他的功能是:求小于形参n能同 ...
include<stdio.h> include<stdlib.h> include<math.h> double fun(int n){ int sum = 0;for(int i = 1; i < n; i++){ if(i % 3 == 0 && i % 7 == 0)sum += i;} return sqrt((double)sum);}

编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺...
printf("%3d",aa[i]);这个n=0,所以没有执行printf语句,没有结果输出。那么n为什么等于0呢,是因为你没有给n赋值,fun函数里,你使用的i进行累加,而你强行把fun参数*p地址给改了,这没有用的,对于n来说,你改不了它的地址,只能改它的值。所以,n的地址还是不变,而你又没有给n赋值,...

程序设计题,编写函数fun,其功能是:求出1~100之间能被7或11整除,并将其...
fun(){ for(int i=1;i

请用c语言编写一个函数fun功能是:计算n门课程的平均分,计算结果作为函 ...
float fun(float a[],int n){ int i;float s=0,t;for(i=0;i<n;n++)s=s+a[i];t=s\/n;return(t);}

C语言程序设计,填空,编写fun函数,求能整除型参x且不是偶数的各整数,并...
include<stdio.h> void fun(int x,int *a,int *n){ int i,count=0;for(i=1;i<=x;i++){ if(x%i==0&&i%2!=0)a[count++]=i;} n=count;} int main(){ int x,a[1000],n,i;printf("please enter an integer number:\\n");scanf("%d",&x);fun(x,a,&n);for(i=0;...

相似回答