Problem C: 指针引出奇数因子

来源:互联网 发布:我与网络演讲稿2000字 编辑:程序博客网 时间:2024/06/08 02:19

Action speak louder than words.     ————行动胜于言语!

Description

编写函数 int fun(int x, int *pp)。其功能是,求出x的所有奇数因子,并按照从小到大的顺序放在pp指向的内存中,函数返回值为这些整数的个数。若x的值为30,数组中的数为1,3,5,15,函数返回4。
用下面的main()函数进行测试: 

/*C++*/
int main()
{
    int a[50],x,n;
    cin>>x;
    n=fun(x,a);
    cout<<n<<endl;
    for(int i=0; i<n; i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}

/*C语言*/

int main()
{
    int a[50],x,n;
    scanf("%d",&x);
    n=fun(x,a);
    printf("%d\n",n);
    for(int i=0; i<n; i++)
        printf("%d ",a[i]);
    printf("\n");
    return 0;
}

Input

一个整数

Output

输入的整数的奇因子个数,以及这些奇因子

Sample Input

30

Sample Output

41 3 5 15
源代码:

#include<stdio.h>int main(){    int a[50],x,n;    scanf("%d",&x);    n=fun(x,a);    printf("%d\n",n);    for(int i=0; i<n; i++)        printf("%d ",a[i]);    printf("\n");    return 0;} int fun(int x, int *pp);int fun(int x, int *pp){    int j=0;    for(int i=1;i<=x;i++)        if(x%i==0&&i%2!=0)        {            *pp=i;            pp++;            j++;        }    return j;} 


0 0