c++ - 获取大小由变量定义的数组变量以进行赋值?

标签 c++ arrays

下面代码的目的是获取用户输入的变量(a 和 c),将它们相乘 (a*c),找到这个数字的因数,然后找出这些因数中哪些加起来等于另一个用户输入的变量(在这种情况下,b)。出于某种原因,它没有正确编译,我不明白为什么。当我尝试使用命令 cout << sum1 << endl << sum2 << endl;它显示狂野的、不可预测的数字。谁能告诉我我的代码是否有问题?这也是一个 void 函数,它将值 sum1 和 sum2(在函数中创建)返回给 main。变量 a、b、c 和 f[] 都定义在 main 中。这是函数声明:

void findFactors(int, int, int, int[], int&, int&);

以及函数本身:

void findFactors(int a, int b, int c, int f[], int& sum1, int& sum2)
{   
    int j=0;
    int mult=a*c;
    int i, z=j, temp;

    for(i=1; i<=mult; i++)
    {
        if(mult%i==0)
        {
           f[j]=i;
           j++;
        }   
    }

    for(j=0; j>=0; j--)
    {
        temp=mult/f[j];
        if(temp+f[z]==b || temp-f[z]==b || f[z]-temp==b)
        {
           sum1 = f[z];
           sum2 = temp;
        }
    }
}

如果有人能帮助我,我将不胜感激。谢谢:)

最佳答案

void findFactors(int a, int b, int c, int f[], int& sum1, int& sum2)
{   
   int j=0;
   int mult=a*c;
   int i, z=j, temp; // here z == 0

   for(i = 1; i <= mult; i++)
   {
      if(mult % i == 0)
      {
         f[j] = i;   // Any # % 1 == 0, so f[0] = 1
         j++;        // note: z is still == 0 here
      }   
   }

   for(j = 0; j >= 0; j--)   // This loop executes only once
   {
      temp = mult / f[j]; // f[0] == 1, so temp == mult here
      // since z==0 here, f[0] == 1
      // so only if: b == (temp + 1) || (temp - 1) || (1 - temp) 
      if(temp + f[z] == b || temp - f[z] == b || f[z] - temp == b)
      {
         sum1 = f[z];   // z is still 0, so f[0] is 1, sum1 == 1
         sum2 = temp;   // temp == mult here, so sum2 == mult
      }
   }
} 

不确定此函数是否按您预期的方式工作,但除非满足变量 b 的条件,否则 sum1sum2 永远不会被设置,如果它们是,sum1 应该被设置为 1sum2 应该被设置为 tempmult

关于c++ - 获取大小由变量定义的数组变量以进行赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37195370/

相关文章:

C++如何使用TR1实现观察者模式模板基类

c++ - n 个多项式的最大线性独立子集

c++ - 如何允许最终用户使用正则表达式创建验证规则?

另一个数组内的 Javascript 数组(多维)

c - 从txt文件中读取并输入到C中的数组

c++ - 压入、弹出和基本堆

c++ - CMake C/C++宏生成

python - 如何在 python 中打印出 calendar.month_name 数组?

python - 比较 numpy 数组中的元素、查找对、如何处理边/角

objective-c - 从另一个类调用 float 组