需要帮助将整数值从循环存储到数组中

时间:2018-11-07 09:11:28

标签: c

我想将一个数字的所有因素列出到一个数组中。所以,这是我的尝试。

#include<stdio.h>
#define n1 10
int main()
{
     int n,i,j,a[n1];
     printf("Enter num: ");
     scanf("%d",&num);
     for(i=1;i<n;i++){
        if(n%i==0){
           for(j=0;j<n;j++)

我不知道如何从这里继续。我很困惑。

#include<stdio.h>
#define n1 10
int main()
{
        int n,i,j,a[n1];
        printf("Enter number : ");
        scanf("%d",&n);
        j = 0;
        for(i=1;i<n;i++){
                if(n%i==0)
                        a[j++] = i;
        }
        printf("The factors of the number are: ");
        for(j=0;j;j++)
                printf("%d\n",a[j]);
}

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是

for(i=0, j=0;i<n;i++)
    if(n%i==0)
        a[j++] = i;

// print it
for (i=0; i<j; i++)
    printf("%d ",a[i]);

答案 1 :(得分:0)

您非常接近,但是内部循环似乎毫无意义。找到因素后,只需存储它并跟踪已发现的因素:

<div id="block-1">
  <div id="inner-block"></div>
</div>
<div id="block-2"></div>

我在 int factors(int n, int *factors) { int j = 0; for (int i = 2; i < n; ++i) { if (n % i == 0) { factors[j++] = i; } } return j; } 上运行了此程序,并得到471113进行了结帐。

请注意,这受[193, 2441]的最大精度的限制(应该使用int,对于实际代码更安全)。