Вопрос C++ вопрос по задаче. Здача лёгкая

Регистрация
22 Июл 2013
Сообщения
74
Репутация
15
Спасибо
0
Монет
0
Здравствуйте! Недавно начал заниматься c++. Сегодня решил попрактиковаться на легких заданиях. И вот проблема. Ввожу число, код должен вывести число словом. (1 - один). Пока я создал 2 массива. В цикле for проверяю введенное число. В первом массиве последнее число - это 9. Код выводит девять. Во втором - 19, но код не выводит слово. Если вы заметите ошибку, то подскажите, пожалуйста.
875a8375f91de049494d6073098e8a2f_7b3783fba4abef7d110c8de497c8d306.jpg

 
string units[] = {"", "один", "два", ... , "девять"};
string tens[] = {"", "", "двадцать ", "тридцать ", ... , "девяносто "};
string second_ten[] = {"десять", "одиннадцать", ... , "девятнадцать"};

int n, t;
cin >> n;
t = n / 10; // количество десятков
if (t == 1) {
cout
 
#include
using namespace std;


int main()
{
setlocale(0, "");
string null_19[] = { "ноль", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять", "десять", "одинадцать", "двенадцать",
"тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семьнадцать", "восемьнадцать", "девятнадцать" };
string dva_90[] = { "двадцать","тридцать","сорок","пятдесят","шестьдесят","семьдесят","восемдесят","девяносто" };
int num;
cin >> num;
cout
 
поставь в 25-ю строчку break point, запусти программу, введи 19 и посмотри пошагово, что происходит внутри. Я for с таким кол-вом параметров в голове прокрутить не могу.
 
#include
#include
using namespace std;
class Numeral {
public:
static string number_to_string(const unsigned number) {
if (number < twenty) return a[number];
if (number < hundred) {
const auto d = number / ten;
auto str = b[d];
const auto x = number % ten;
if (zero == x) return str;
return str += ' ' + a[x];
}
if (number >= hundred) {
const auto h = number / hundred;
auto str = c[h];
const auto y = number % hundred;
if (zero == y) return str;
if (y < twenty) return str += ' ' + a[y];
const auto d = number / ten % ten;
str += ' ' + b[d];
const auto x = number % ten;
if (zero == x) return str;
return str += ' ' + a[x];
}
}
private:
inline static const auto zero = 0U;
inline static const auto ten = 10U;
inline static const auto twenty = 20U;
inline static const auto hundred = 100U;
inline static const string a[] = {
"ноль", "один", "два", "три", "четыре", "пять",
"шесть", "семь", "восемь", "девять", "десять",
"одиннадцать", "двенадцать", "тринадцать",
"четырнадцать", "пятнадцать","шестнадцать",
"семнадцать", "восемнадцать", "девятнадцать"
};
inline static const string b[] = {
"ноль", "десять", "двадцать", "тридцать",
"сорок", "пятьдесят", "шестьдесят",
"семьдесят", "восемьдесят", "девяносто"
};
inline static const string c[] = {
"ноль", "сто", "двести", "триста",
"четыреста", "пятьсот", "шестьсот",
"семьсот", "восемьсот", "девятьсот"
};
};
int main() {
system("chcp 1251 > nul");
const auto limit = 1000U;
auto number = 0U;
while (number < limit) {
cout > number;
cout
 
Назад
Сверху