在c中寻找N的不同因子

在c中寻找N的不同因子,c,debugging,distinct,c99,factors,C,Debugging,Distinct,C99,Factors,需要找到N.的所有不同因素,并将其显示为:例如:。;对于N=6 四, 1236 #include <stdio.h> int main() { int N; int count =0; int j=0; int arr[j]; scanf("%d",&N); for(int i=1;i<=N;i++){ if((N%i)==0){ printf("%d\n",i);

需要找到N.的所有不同因素,并将其显示为:例如:。;对于N=6

四,

1236

#include <stdio.h>
int main()
{ 
int N;
int count =0;
int j=0;
int arr[j];
scanf("%d",&N);


    for(int i=1;i<=N;i++){
        if((N%i)==0){
            printf("%d\n",i);
        
            count++;
        }
    }

  printf("%d\n",count);
  for(j=0;j<count;j++){
  printf("%d ",arr[j]);
  }
  return 0;
  }
#包括
int main()
{ 
int N;
整数计数=0;
int j=0;
int-arr[j];
scanf(“%d”和“&N”);

对于(int i=1;i
int arr[0];
为什么需要能够容纳零元素的数组?此外,还可以打印
arr[j]
在结束循环中,但您的arr大小为0。我想您键入了一些错误。请尝试读取代码一次。这不是我运行代码时得到的结果。此外,为什么要在除数之前打印除数?它与所需格式不匹配。在创建数组之前,不会分配N。这是未定义的行为。请尝试移动他
int-arr[N];
scanf
调用之后声明。
#include <stdio.h>

int main()
{
int N,p;
int j=0;
int count=0;
int arr[N];

scanf("%d",&N);

 
for(int i=1;i<=N;i++){
    p=N%i;
    if(p==0){
        arr[j]=i;
        j++;
        count++;
    }
}
printf("%d\n",count);
for(j=0;j<count;j++){
    printf("%d ",arr[j]);
}
return 0;
}