C 需要帮助将循环中的整数值存储到数组中吗
我想把一个数的所有因子都列成一个数组。所以,这是我的尝试C 需要帮助将循环中的整数值存储到数组中吗,c,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 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]);
}
我想你要找的是:
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]);
你已经很接近了,但是内部循环似乎毫无意义。一旦找到一个因子,只需存储它,并记录找到的因子数量:
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上运行了这个,得到了[1932441]的结果
请注意,这受到int的最大精度的限制,应该使用无符号long,并且对于实际代码更安全。0可以是一个因子吗?我不知道我们可以使用增量运算符作为数组的下标。谢谢。@Kohila索引必须是一个整数表达式,您可以在任何表达式中使用任何运算符,数组索引不是特例。请检查第二段代码@unwind Now,我有一个问题。我试图打印并显示这些因素,但我无法为第二个for循环提供良好的条件。如果我给j@Kohila您应该只使用从0到j的循环,不包括j,即int k=0;k