C/C++

Составить программу C++, с помощью switch/case

Составить программу, которая по введенному числу n печатает фразу «n копеек» в правильной форме(например: «2 копейки», «21 копейка» и т.д.).
ты уверен, что это нужно через switch делать? не легче сохранить количество копеек в переменную и вывести так:
int n
cin >> n;
cout << n << " копеек" << endl;
?

ну ладно....
Николай Николаев
Николай Николаев
135
Лучший ответ
Николай Николаев а насчёт правильной формы, делать проверку
Александр Александров в задании через switch(
int n;
string name;
cin >> n;
default: switch (n % 10 * (n / 10 % 10 != 1)) {
case 1: name = "йка"; break;
case 2: case 3: case 4: name = "йки"; break;
default: name = "ек"; break;
}
cout << n << " копе" << name;

А вот так это делается без switch:

int n;
string names[] = {"ек", "йка", "йки", "йки", "йки", "ек", "ек", "ек", "ек", "ек"};
cin >> n;
cout << n << " копе" << names[n % 10 * (n / 10 % 10 != 1)];
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
int copecks(const char* msg = "В копейках: ") {
auto value = -1;
while (value < 0 || value > 99) {
cout << msg;
cin >> value;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
return value;
}
int main() {
system("chcp 1251 > nul");
auto cop = copecks();
string str;
switch (cop % 10) {
case 1: str = "копейка"; break;
case 2:
case 3:
case 4: str = "копейки"; break;
default: str = "копеек";
}
switch (cop) {
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
case 19: str = "копеек"; break;
}
cout << cop << ' ' << str << '\n';
system("pause > nul");
}
Копейки уже не актуальны.
Павел Макаров
Павел Макаров
51 411