问答题
使用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(),请勿改动其他部分的内容。#include<10Stream.h>#define MAXNLEN100void factor(int*des,int&length,int n){}void main(){int a[MAXNLEN],length;int n=20;factor(a,length,n);for(inti=0;i<length;i++){cout<<a[i]<<" ";}cout<<endl;return;}
【正确答案】正确答案:length=0; for(int i=1;i<=n;i++) { if(n%i==0)//判断是否n的因数 { des[length]=i; length++; } }
【答案解析】解析:(1)找到n的每一个因数可采用循环方法,循环变量从1开始到n,逐个取n和循环变量的余数。 (2)如果余数为0说明是n的因数,添加到des中,参数length是采用的引用传递方式,形参的改变会影响实参,因此可直接将length的值加1表示des中元素个数加1。