Проект Счета за Электроэнергию

#c

Вопрос:

У меня возникли проблемы с тем, чтобы программа не показывала никаких отрицательных чисел и остановилась на 12 месяце.Я попытался изменить оператор if и даже добавить другую переменную, которая была переменной баланса до оплаты, и я не вижу никаких изменений в программе при ее запуске. Есть какие-нибудь предложения?

     const double YEARLY_INTEREST_RATE = 22.24 / 100.0;    // 22.24% = 0.2224
const double MONTHLY_INTEREST_RATE = YEARLY_INTEREST_RATE / 12;
const double CREDIT_LIMIT = 500.00;     // credit limit
const int    MAX_MONTHS = 12;           // maximum months to display

int main()
{
    // Input values
    double balance = 495.75;
    double payment = 35.00;
    double charges = 0.00;

    // Computed values
    double interest;
    double newBalance;
    int month = 1;
    
    // table column headings
    cout << fixed << showpoint;
    cout << setw(7) << "Month" << setw(9) << "Balance" << setw(10) << "Interest" << setw(9) << "Payment"
        << setw(9) << "Charges" << setw(12) << "New Balance" << endl;

    do {
        interest = balance * MONTHLY_INTEREST_RATE;
        newBalance = interest   balance   charges - payment;

        // display table values
        cout << setprecision(2);
        cout << setw(7) << month << setw(9) << balance << setw(10) << interest << setw(9) << payment
            << setw(9) << charges << setw(12) << newBalance << endl;

        month  ;                // update month number
        balance = newBalance;   // transfer newBalance to balance for next computation

        if (payment >= balance)
        {
            newBalance = 0.00; 
        }
       
    } while (balance >= 0.00 amp;amp; balance <= CREDIT_LIMIT);
    return 0;
}
 

Комментарии:

1. Можете ли вы добавить примеры того, что вы получаете и что вы ожидаете увидеть?

Ответ №1:

Если вы хотите остановиться на 12 месяце, используйте разрыв с кодом if, как показано ниже

     if (month == 12)break;
    month  ;                // update month number
    balance = newBalance;   // transfer newBalance to balance for next computation
 

Комментарии:

1. Спасибо, что сработало

2. у меня все еще возникают проблемы с остановкой программы на 0.00, как только она попадет в негативы. Я добавил перерыв, но теперь он останавливается на последнем положительном числе вместо 0,00. Есть какие-нибудь предложения? если (новый баланс;

3. На самом деле, я не совсем понимаю вашу деловую проблему. Можете ли вы сказать об этом ясно?

4. извините, неважно, что я смог его получить, но спасибо за вашу помощь!