#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);
}
我的目标是找到数字的因子并将因子存储在数组中。
当我运行此代码时,它确实找到了因素,但是当我尝试打印数组时,它会打印字符吗?打印因子是因为我不是因为数组。我该如何解决这个问题?为什么会这样做?
答案 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;
。但我不推荐这个,因为它不是一个真正的解决方案,只能用于一小组输入。