C/C++

Структуры на языке С++ Скажите пожалуйста, почему не работает программа ,и как её исправить?

Задание:
Описать тип Price - с полями целого типа rub (рубли), cop (копейки) и
функцию incPrice(p, t), с параметром p типа Price и целочисленным t, которая вычисляет произведение цены на положительное целое число t. Аргумент p является входным и выходным параметром. Применить функцию incPrice к пяти данным ценам.
Текст программы:
#include<iostream>
#include<cmath>
struct Price {
int rub;
int cop;
};
Price incPrice(Price p, int t) {

p.rub=p.rub * t;
p.cop=p.cop * t;
return p;
}
int main() {
using namespace std;
int t=0;
Price c;
cin >> c.rub;
cin>>c.cop;
cout << c.rub << "." << c.cop << endl;
cin >> t;
incPrice(c, t);
cout << c.rub<<"."<<c.cop;
return 0;
}
Тест:
Выходной (выходной и входной) параметр должен передаваться по ссылке или указателю.
 Price incPrice(Price& p, int t) 
А так же нужно обрабатывать после умножения копейки, чтобы не было больше 99
Фыуеу\ыпа \ыуп
Фыуеу\ыпа \ыуп
51 417
Лучший ответ
Мадияр Майлибаев Большое спасибо!
 #include 

using namespace std;

struct Price {
unsigned rub;
unsigned cop;
Price() : rub(0), cop(0) {}
Price(const unsigned rub, const unsigned cop) : rub(rub), cop(cop) {
cast();
}
private:
void cast() {
static const auto ten = 100U;
while (cop >= ten) {
++rub;
cop -= ten;
}
}
friend Price operator*(const Price& p, const unsigned t) {
return Price{ p.rub * t, p.cop * t };
}
friend Price operator*(const unsigned t, const Price& p) {
return Price{ p.rub * t, p.cop * t };
}
friend ostream& operator p.cop;
p.cast();
return inp;

}
};

template
T input(const char* msg) {
cout > value;
return value;
}

Price incPrice(const Price& p, const unsigned t) {
return p * t;
}

int main() {
const auto p = input("rub cop: ");
const auto t = input("t: ");
const auto total = incPrice(p, t);
cout
Женя Сокирко
Женя Сокирко
61 800
Талгат Тутеев Чего они лайкают то, ответ то не удовлетворяет требованию "Аргумент p является входным и выходным параметром".
можно так изменить
c = incPrice(c, t);
Beka -Beka
Beka -Beka
25 445
Вы в функцию incPrice() передаёте не структуру которую объявили в main, а значения этой структуры. В самой функции incPrice() создаётся копия структуры, производятся вычисления и потом после завершения incPrice() структура в incPrice() исчезает. А в main не подверглась изменению
.
Чтобы заставить функцию incPrice() работать со структурой объявленной в main делайте как первый ответ. Либо верните значения структуры которые есть в incPrice() как говорит второй ответ