вычесть n раз значение int - PullRequest
0 голосов
/ 13 января 2019

Мой код вычесть n раз количество:

int op = 0,quan,numbers,many;
cout << "Quantity to substract: " << endl;
        cin >> quan;
        cout << "Times to subs quantity:" << endl;
        cin >> many;
        for(int count = 1; count <= many; count++)
        {
            cout << "Insert " << count << " Number" << endl;
            cin >> numbers;                 
            op = quan - numbers;
        }
cout << "Total: " << op << endl;

Но не работает.

Запуск программы:

Quantity to substract:
10
Times to subs quantity:
5
Insert 1 Number:
1
Insert 2 Number:
1
Insert 3 Number:
1
Insert 4 Number:
1
Insert 5 Number:
1
Total:
9

Итого должно быть 5

Не могли бы вы поддержать меня с этой проблемой? Спасибо

Ответы [ 3 ]

0 голосов
/ 13 января 2019

это потому что вы вычитаете из quan без использования предыдущего значения op. в вашем коде каждый раз, когда вы делаете: op = quan - numbers вы теряете предыдущее полученное состояние.

int op = 0,quan,numbers,many;
cout << "Quantity to substract: " << endl;
        cin >> quan;
        cout << "Times to subs quantity:" << endl;
        cin >> many;
        // make op take the value of quan
        op = quan;
        for(int count = 1; count <= many; count++)
        {
            cout << "Insert " << count << " Number" << endl;
            cin >> numbers;        
            // substract from op           
            op = op - numbers;
        }
cout << "Total: " << op << endl;
0 голосов
/ 13 января 2019

Попробуйте это:

int op = 0,quan,numbers,many;
cout << "Quantity to substract: " << endl;
        cin >> quan;
        cout << "Times to subs quantity:" << endl;
        cin >> many;
        for(int count = 1; count <= many; count++)
        {
            cout << "Insert " << count << " Number" << endl;
            cin >> numbers;                 
            op = quan - numbers;
            quan = op; // Add this so that new value is assigned to quan
        }
cout << "Total: " << op << endl;
0 голосов
/ 13 января 2019

Похоже, цель здесь - вычесть все 5 чисел из quan. Данный код вычитает только последний.

Чтобы вычесть все числа, инициализируйте переменную результата первым числом:

op = quan;

и в цикле вычтите из переменной результата:

op = op - numbers; // alternatively: op -= numbers
...