无效的操作数和非法的赋值转换

问题描述 投票:-1回答:1

这个程序的目的是花费一美元金额并打印将返回的账单数量,以最有效地提供该金额和剩余的变化。 (即$ 523.33 = $ 50 x 10 / $ 20 x1 / $ 1 x 3 / .33剩余)。它应该工作,除了我在附加图像中得到的错误。我已经尝试了每次迭代,我都被教过铸造,但没有任何效果。

#include <iostream>
using namespace std;


int main()
{
    double withdrawAmount; //declare variable to store use input for desired withdraw amount

    do { //Ask for valid user input
       cout << "Please enter an amount to withdraw from yor account" << endl;
       cin >> withdrawAmount; //save user input into withdrawAmount variable
   } while (withdrawAmount < 1);

   //Print greatest # of bills that can be taken from the withdrawlAmount
     cout << "$50 bills :"<< (int) withdrawAmount / 50 << endl;    
   //Print number of $50 bills
     (int) withdrawAmount %= 50;
     cout << "$20 bills: " << (int) (withdrawAmount %= 50) / 20 << endl; 
   //Print number of $20 bills
     (int) withdrawAmount %= 20;
     cout << "$10 bills: " << (int) (withdrawAmount %= 20) / 10 << endl; 
  //Print number of $10 bills
   (int)withdrawAmount %= 10;
   cout << "$5 bills: " << (int) (withdrawAmount %= 10) / 5 << endl; 
  //Print number of $5 bills
   (int)withdrawAmount %= 5;
   cout << "$1 bills: " << (int) (withdrawAmount %= 5) / 1 << endl; 
  //Print number of $1 bills
   (int) withdrawAmount %= 1;
   cout << "Remaining: " << withdrawAmount / 1 << endl;
   return 0;
}

enter image description here

c++ casting
1个回答
2
投票

(int) withdrawAmount %= 50;应该被替换

withdrawAmount = std::fmod(withdrawAmount, 50);

其他值相同。 (别忘了#include <cmath>)。

作为替代:

double input; //declare variable to store use input for desired withdraw amount

do { //Ask for valid user input
   cout << "Please enter an amount to withdraw from yor account" << endl;
   cin >> input; //save user input into withdrawAmount variable
} while (input < 1);
int withdrawAmount = input; // rounded toward 0.

std::cout << "$50 bills :"<< withdrawAmount / 50 << std::endl;
withdrawAmount %= 50;

// And so on...

// Final remaining
std::cout << "Remaining: " << input - int(input) << std::endl;
© www.soinside.com 2019 - 2024. All rights reserved.