如何找到数字的因子并将因子保存在C的数组中?

时间:2015-10-14 13:47:39

标签: arrays indexing factors

    #include<stdio.h>

    int main()
    {
        int x, i, j=0;
        char factors[101];

        printf("Enter a number: ");
        scanf("%d", &x);

        for(i=1;i<=x;i++)
        {
            if(x%i==0)
            {
                factors[j]=i;
                j++;
                printf("%d\t", i);
            }
        }
        getchar();
        printf("%s", factors);

    }

我的目标是找到数字的因子并将因子存储在数组中。

当我运行此代码时,它确实找到了因素,但是当我尝试打印数组时,它会打印字符吗?打印因子是因为我不是因为数组。我该如何解决这个问题?为什么会这样做?

1 个答案:

答案 0 :(得分:0)

使用整数数组,即:

#include<stdio.h>

int main()
{
    int x, i, j=0;
    int factors[101];

    printf("Enter a number: ");
    scanf("%d", &x);

    for(i=1;i<=x;i++)
    {
        if(x%i==0)
        {
            factors[j++]=i;
            printf("%d\t", i);
        }
    }
    getchar();
    for(int k =0;k<j;++k)
    printf("%d\n",factors[k]);
}

如果你想把它保持为char数组还有很多工作要做,因为因子可能大于10,而一个字符只能代表一个数字。如果您知道您的号码数量小于10,那么您可以在原始代码中执行:factors[j]=i+48;。但我不推荐这个,因为它不是一个真正的解决方案,只能用于一小组输入。