Дается показатель усвоения учащимся. Целое число в диапазоне 0-100. В зависимости от его освоения составьте программу, выражающую результат словами (“ноль баллов”, “пятьдесят баллов”, “восемьдесят семь баллов”).
C++
Ответы
#include <iostream>
#include <string>
std::string convert_to_words(int num) {
// массив слов для чисел от 0 до 19
std::string ones[] = {"ноль", "один", "два", "три", "четыре", "пять",
"шесть", "семь", "восемь", "девять", "десять",
"одиннадцать", "двенадцать", "тринадцать", "четырнадцать",
"пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать"};
// массив слов для чисел десятков
std::string tens[] = {"", "", "двадцать", "тридцать", "сорок", "пятьдесят",
"шестьдесят", "семьдесят", "восемьдесят", "девяносто"};
// массив слов для чисел сотен
std::string hundreds[] = {"", "сто", "двести", "триста", "четыреста", "пятьсот",
"шестьсот", "семьсот", "восемьсот", "девятьсот"};
std::string words;
if (num == 0) {
words = ones[0];
} else if (num <= 19) {
words = ones[num];
} else if (num <= 99) {
words = tens[num / 10] + " " + ones[num % 10];
} else if (num <= 999) {
words = hundreds[num / 100] + " " + convert_to_words(num % 100);
} else {
words = "недопустимое значение";
}
return words;
}
int main() {
int num;
std::cout << "Введите показатель усвоения: ";
std::cin >> num;
std::string words = convert_to_words(num);
std::cout << "Показатель усвоения: " << words << std::endl;
return 0;
}