#include <iostream> #include <stdlib.h> using namespace std; /*设计一个函数,传入整数,返回所有的因子 例如:传入30,返回【2,3,5,6,10,15】*/ //因子:所有可以整除这个数的数,不包括这个数本身 //因数:所有可以整除这个数的数,包括这个数本身 int* get_factor(int x) { //定义一个整型数,用于记录有多少个因子 int n=1;//由于返回的是指针类型,要判断什么时候结束,可以将最后一个数设置为-1 for(int i=1;i<x;i++) { if(x%i==0)//说明是因子 { n++; } } //动态的申请空间 int* data=(int*) malloc(n*sizeof(int));//int* data=new int [n] //为数组进行赋值 int j=0;//用于记录数组的下标 for(int i=1;i<x;i++) { if(x%i==0) { data[j]=i; j++; } } //将最后一个设置为-1,用于结束标志 data[n]=-1; return data; } int main() { int* a=get_factor(30); //输出 for(int* p=a;*p>0;p++) cout<<*p<<" "; cout<<endl; free(a);//delete [] a; return 0; }
Snipaste_2024-03-10_11-18-08.png
老师,我想问一下输出的结果为什么有一个 17170624呢