Товар стоит a руб. b коп. За него заплатили c руб. d коп. Сколько сдачи требуется получить? Необходимо вывести 2 числа
12345678910111213141516171819202122232425
#include<iostream>
#include <cmath>
using namespace std;
int main(){
int r1,k1,r2,k2,rubley,kopeek;
cin>>r1>>k1>>r2>>k2;
if (kopeek < 1){
kopeek += 100;
rubley --;
cout<<"Рублей : "<<rubley <<"Копеек: "<<kopeek;
}else if (kopeek > 100){
kopeek -= 100;
rubley ++;
cout<<"Рублей : "<<(rubley) <<"Копеек: "<<kopeek;
}else{
rubley = r2 - r1;
kopeek = k2 - k1;
cout<<"Рублей : "<<rubley <<"Копеек: "<<kopeek;
}
return 0;
}
Что делаю не так? Реализовал функцию в else if, задал значения 80,200,90,310 - выдаёт -1 рубль 100 копеек, хотя по сути должен вывести 11 рублей 10 копеек
По дате
По рейтингу
12345678910111213141516171819202122232425262728293031323334353637383940414243
#include <iostream>
using namespace std;
long long input(istream& inp, const char* msg) {
cout << msg;
long long value;
inp >> value;
inp.ignore(0x1000, '\n');
return value;
}
class Money {
public:
Money() : money(0) {}
Money(const long long value) : money(value) {}
private:
long long money;
friend istream& operator>>(istream& inp, Money& m) {
const auto rub = input(inp, "Рублей: ");
const auto kop = input(inp, "Копеек: ");
m.money = rub * 100LL + kop;
return inp;
}
friend ostream& operator<<(ostream& out, const Money& m) {
out << "Рублей: " << m.money / 100LL << '\n';
out << "Копеек: " << m.money % 100LL << '\n';
return out;
}
friend Money& operator-=(Money& a, const Money& b) {
if (a.money < b.money) puts("Недостаточно средств!");
else a.money -= b.money;
return a;
}
};
int main() {
puts("У вас в кошельке:");
Money wallet;
cin >> wallet;
puts("Стоимость покупки:");
Money purchase;
cin >> purchase;
wallet -= purchase;
puts("Остаток средств:");
cout << wallet;
}