我对编程还比较陌生。我一直在开发一个项目,该项目将用户输入传递给一个函数,该函数查找数字的因子,将它们存储在一个数组中(最多仅适用于 100 个因子),然后将数组返回到主程序。一旦我将数组调用到主程序,然后使用 for 循环打印它,我就会遇到问题。我需要一个计数器来计算数组的大小,以计算出运行 for 循环的次数。
到目前为止,我尝试使用指针来计算第一个循环并将其发送到主函数,但没有成功。唯一有效的是全局变量,但出于显而易见的原因,我不想这样做。
#include <stdio.h>
#define MAX_SIZE 100
int* get_factors(int number)
{
int x;
int z;
int y = 0;
static int arr[MAX_SIZE];
for(x=1; x <= number; ++x)
{
if (number%x == 0)
{
arr[y] = x;
y++;
}
}
return arr;
}
int main(void)
{
int *num;
int temp;
int z = 0;
printf("Enter a number: ");
scanf("%d",&temp);
printf("Factors of %d: ", temp);
num = get_factors(temp);
for(z=0; z<=20; z++) //This is the loop that i need to figure out a
counter for
{
printf("%d ", num[z]);
}
return 0;
}
最佳答案
#include <stdio.h>
#define MAX_SIZE 100
struct myObject {
int arr[MAX_SIZE];
int index;
};
struct myObject
get_factors (int number)
{
int x;
struct myObject holder;
holder.index = 0;
for (x = 1; x <= number; ++x)
{
if (number % x == 0)
{
holder.arr[holder.index] = x;
holder.index++;
}
}
return holder;
}
int
main (void)
{
struct myObject num;
int temp;
int z;
printf ("Enter a number: ");
scanf ("%d", &temp);
printf ("Factors of %d: ", temp);
num = get_factors (temp);
for (z = 0; z < num.index; z++) //This is the loop that i need to figure out a
//counter for
{
printf ("%d ", num.arr[z]);
}
return 0;
}
关于c - 如何添加 for 循环的计数器并将其传递给 C 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57964866/