Проблема:
Напишите программу, которая предлагает пользователю ввести некоторое количество 1, 2, 5, 10, 20, 50 и 100 долларовых купюр. Запросите пользователя отдельно для номера каждого размера доллара.
Я думаю, что я закончил код довольно хорошо, но последняя часть вопроса гласит:
Измените вашу программу, чтобы использовать список инициализатора для вектора, и используйте оператор for на основе диапазона для обхода вектора. Примечание. Эти функции C ++ 11 доступны в g ++ 4.6 и Visual Studio 2012, но могут быть недоступны в других компиляторах.
Я не понимаю, о чем просит последняя часть. Надеюсь, кто-то здесь может указать мне правильное направление. Это класс C ++, и моя книга не имеет новейшей версии.
Любая критика в отношении моего формата кода также будет отличной!
Вот мой код:
#include "std_lib_facilities_3.h"vector<int>bills;
int bill;
int bill_tot(){
int sum =
1*bills[0]+2*bills[1]+5*bills[2]+10*bills[3]+20*bills[4]+50*bills[5]+100*bills[6];
return sum;
}
int main()
try{
cout << "Enter the number of One Dollar Bills you have: ";
cin >> bill;
cout << '\n';
bills.push_back(bill);
if (bill<0)
error("You can't have a negative value.\n");
cout << "Enter the number of Two Dollar Bills you have: ";
cin >> bill;
cout << '\n';
bills.push_back(bill);
if (bill<0)
error("You can't have a negative value.\n");
cout << "Enter the number of Five Dollar Bills you have: ";
cin >> bill;
cout << '\n';
bills.push_back(bill);
if (bill<0)
error("You can't have a negative value.\n");
cout << "Enter the number of Ten Dollar Bills you have: ";
cin >> bill;
cout << '\n';
bills.push_back(bill);
if (bill<0)
error("You can't have a negative value.\n");
cout << "Enter the number of Twenty Dollar Bills you have: ";
cin >> bill;
cout << '\n';
bills.push_back(bill);
if (bill<0)
error("You can't have a negative value.\n");
cout << "Enter the number of Fifty Dollar Bills you have: ";
cin >> bill;
cout << '\n';
bills.push_back(bill);
if (bill<0)
error("You can't have a negative value.\n");
cout << "Enter the number of One Hundred Dollar Bills you have: ";
cin >> bill;
cout << '\n';
bills.push_back(bill);
if (bill<0)
error("You can't have a negative value.\n");cout << "You have " << bills[0] <<" One Dollar Bills.\n";
cout << "You have " << bills[1] <<" Two Dollar Bills.\n";
cout << "You have " << bills[2] <<" Five Dollar Bills.\n";
cout << "You have " << bills[3] <<" Ten Dollar Bills.\n";
cout << "You have " << bills[4] <<" Twenty Dollar Bills.\n";
cout << "You have " << bills[5] <<" Fifty Dollar Bills.\n";
cout << "You have " << bills[6] <<" One Hundred Dollar Bills.\n";
cout << "The value of all your Dollar Bills are $" << bill_tot() << endl;
keep_window_open();
}
catch (runtime_error e) {
cout << e.what() << '\n';
keep_window_open();
}
Это иллюстративный код:
std::vector<int> denomination { 1,2,5,20,50,100}; // Initializer list for vector
int sum = 0;
int number;
for ( int bill : denomination ) // range-based for loop
{
cout << "Enter the number of $" << bill << " you have: ";
cin >> number;
sum += number * bill;
}
Других решений пока нет …