我正在寻求一些帮助,并确认我是否有可能做到这一点。
我有一个数组(对于此测试)有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;
}
就像我上面所说的那样,我知道这不是一个有效的代码,但我完全不知道下一步该转向何处。
答案 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赋值,然后比较它。