使用VC6打开考生文件夹下的源程序文件modi2.cpp。 阅读下列函数说明和代码,完成空出部分程序。函数factor(int*des,int&length,int n)实现的功能是:将n所有因数存放到des中,通过length引用返回因数的个数,比如fa

admin2015-05-30  28

问题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。
阅读下列函数说明和代码,完成空出部分程序。函数factor(int*des,int&length,int n)实现的功能是:将n所有因数存放到des中,通过length引用返回因数的个数,比如fator(a,length,20)执行后,则a={1,2,4,5,10,20),length=6。
    注意:只能补充函数factor(),请勿改动其他部分的内容。
    1    #include
    2  #define MAXNLEN 100
    3  void factor(int*des,int&length,int n)
    4    {
    5
    6  }
    7    void main()
    8  {
    9    int a[MAXNLEN],length ;
    10    int n=20;
    11    factor(a,length,n);
    12    for(int i=0,i    13    {
    14    cout<<<"  ";
    15    }
    16    cout<    17    return;
    18  }

选项

答案1 length=0 ; 2 for (int i=1 ; i<=n ; i++) 3 { 4 if(n%i==0)//判断是否n的因数 5 { 6 des[1ength]=i ; 7 length++; 8 } 9 }

解析 函数factor(int*des,int&length,int n)实现的功能是将n所有因数存放到des中,通过length引用返回因数的个数,求因数可采用取余数的方法,如果两数相除余数为0则说明除数是被除数的因数。
    [解题思路]
    (1)找到n的每一个凶数可采用循环方法,循环变量从1开始到n,逐个取n和循环变量的余数。
    (2)如果余数为0说明是n的因数,添加到des中,参数length是采用的引用传递方式,形参的改变会影响实参,因此可直接将length的值加1表示des中元素个数加1。
转载请注明原文地址:https://jikaoti.com/ti/zBE0FFFM
0

最新回复(0)