我想返回一个指向一个int数组的指针,它是给定数字的所有分隔符。 当我给出10作为参数并运行我的程序时,我注意到方法dividers_of(...)给出了正确的输出。 但不幸的是,第二种称为number_dividers(...)的方法没有。 例如,看起来好像数组中的某些位置未被设置为0或分频器,如输出 'element 2009'所示。 我做错了什么?我的int数组没有正确初始化的可能性怎么样
#include <stdio.h>
int* dividers_of(int number){
int dividers [number];
dividers[0]=1;
int *ptr=dividers;
int i;
for(i=2;i<number;i++){
if(number%i==0){
dividers[i]=i;
printf("deler : %i\n",dividers[i]);
} else{
dividers[i]=0;
printf("niet- deler : %i\n",i);
}
}
return ptr;
}
int number_dividers(int* ptr,int length){
int * runner = ptr;
int number_dividers ;
while(runner!=ptr+length){
printf("element %i\n",*runner);
if(*runner!=0){
number_dividers++;
}
runner++;
}
return number_dividers;
}
输出:
deler:2 niet- deler:3
niet- deler:4
deler:5
niet- deler:6
宁静:7
niet- deler:8
niet- deler:9
元件1
元件2009
元件2008
元素0
元素0
元件1638
元件23
元件1
元件2293
元素0
BTW'int number_dividers;'未初始化。 – BLUEPIXY