你如何找到一个数的因数并将这些因数保存在 C 的数组中?
How do you find factors of a number and save the factors in an array for C?
#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);
}
我的目标是找到一个数的因数并将这些因数存储在数组中。
当我 运行 这段代码时,它确实找到了因子,但是当我尝试打印数组时,它打印字符?由于 i 而不是因为数组,所以打印了因子。我该如何解决这个问题,为什么会这样?
改用整数数组即:
#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;
。但我不推荐这样做,因为它不是一个真正的解决方案,并且只能在一小部分输入上工作。
#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);
}
我的目标是找到一个数的因数并将这些因数存储在数组中。
当我 运行 这段代码时,它确实找到了因子,但是当我尝试打印数组时,它打印字符?由于 i 而不是因为数组,所以打印了因子。我该如何解决这个问题,为什么会这样?
改用整数数组即:
#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;
。但我不推荐这样做,因为它不是一个真正的解决方案,并且只能在一小部分输入上工作。