从数组中减去一个特定的数字

时间:2016-03-31 11:09:02

标签: c++ arrays

我正在寻求一些帮助,并确认我是否有可能做到这一点。

我有一个数组(对于此测试)有3个数字,其中一个我想用作减去的数字。

我的起始号码是100,我希望最后留下40,因为这会链接到更大的节目。

我知道如何遍历数组以找到匹配的数字并将其作为起点,但是我完全失去了尝试扩展它以完成上述操作。

非常感谢任何帮助!

到目前为止我的代码。

int main() {
    int arr[3] = {12,13,60};  //Array of 3 numbers
    int j = 100; // j set to 100 for the test
    int t = 0; //to be used 
    int result;

    for (int i= 0; i <= sizeof(arr); i++) {   //loops through the array 
        if (j == arr[i] - j == 40) {   //if j = array number - j == 40
           possible = true; 
           t = arr[i] - j; //sets t to the correct array number
        }
   }

    if (possible == 1) {
        cout << "This is possible to do" << endl;
        result = (j - t) << endl; //calculates the sum which leaves 40
    }
    else {
        cout << "This is not possible" << endl;
    }

return 0;
}

就像我上面所说的那样,我知道这不是一个有效的代码,但我完全不知道下一步该转向何处。

4 个答案:

答案 0 :(得分:1)

我并不是100%清楚你要做什么,但这看起来是错的:

    if (j == arr[i] - j == 40) {   //if j = array number - j == 40
       possible = true; 
       t = arr[i] - j; //sets t to the correct array number
    }

这里的if语句表示&#34;如果当前数组值减去100等于40和100&#34; ...这是不可能的。

我认为你在寻找的是:

if( j - arr[i] == 40 )

这意味着&#34;如果100减去当前数组值是40&#34;

答案 1 :(得分:1)

我认为您正在尝试做的正确代码是

int main() {
    int arr[3] = {12,13,60};  //Array of 3 numbers
    int j = 100; // j set to 100 for the test
    int t = 0; //to be used 
    int result;

    for (int i= 0; i <= sizeof(arr); i++) {   //loops through the array 
        if (j - arr[i] == 40) {   //if j - array number == 40
           possible = true; 
           t = arr[i]; //sets t to the correct array number
        }
   }

    if (possible == true) {
        cout << "This is possible to do" << endl;
        cout << result = (j - t) << endl; //calculates the sum which leaves 40
    }
    else {
        cout << "This is not possible" << endl;
    }

return 0;
}

答案 2 :(得分:0)

   if (j == arr[i] - j == 40) {   //if j = array number - j == 40

肯定是坏事。 它评估如下:

  if ((j == arr[i] - j) == 40)

这意味着:

  if (true == 40)

这将永远是假的。

答案 3 :(得分:0)

通过查看评论

//if j = array number - j == 40

我认为你要做的是

if ((j=arr[i]-j) ==  40){
   possible=true;
   t=arr[i]-j;
}

如果你真的想为j赋值,然后比较它。