2016-03-31 2 views
1

Я ищу немного помощи и подтвердил, что то, что я пытаюсь сделать, возможно вообще.Вычитание из массива, чтобы оставить определенное число

У меня есть массив (для этого теста) из 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; 
} 

Как я уже говорил выше, я знаю, что это не рабочий код, но я полностью потерял то, что нужно сделать дальше.

+1

Я действительно не понимаю этого, если статисты, если (j == arr [i] - j == 40) –

ответ

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 
    } 

Условный оператор здесь означает «если текущее значение массива минус 100 равно 40 и 100 "... что невозможно.

Я думаю, что вы искали было:

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

Что означает "если 100 минус текущее значение массива 40"

+0

Я думаю, что это тоже неправильно или, по крайней мере, никогда не входит в contidion, не должно быть, если (j - arr [i] == 40)? –

+0

, что было быстро, hehehe –

+0

@ AsierSánchezRodríguez Да, я видел тот же вопрос, как только я разместил;) спасибо, хотя! – Dennis

0

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

, безусловно, плохо. Он оценивает, как это:

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

Что означает:

if (true == 40) 

И это будет всегда ложно.

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; 
} 
0

Глядя на комментарий

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

я думаю, что вы пытаетесь сделать, это

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

Если вы действительно хотите присвоить значение j, а затем сравните его.

Смежные вопросы