0 / 0 / 0
Регистрация: 27.07.2022
Сообщений: 10
1

Проблема при вызове функции

02.09.2022, 13:08. Показов 362. Ответов 2

Author24 — интернет-сервис помощи студентам
Добрый день.
У меня возникла проблема с вызовом функции.
Мне нужно вызвать функцию tismill (строка 125) без аргументов. Можно ли так сделать? И как?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include <QCoreApplication>
#include <iostream>
#include <QString>
#include <map>
#include <QDebug>
#include <cmath>
 
using namespace std;
 
int shetchik(int number);
int raspars(int number, int counter);
QString tismill(int number, int couneter);
QString perevod(int number);
 
map<int, QString> collection = {{0, "ноль"}, {1, "один"}, {2, "два"}, {3, "три"}, {4, "четыре"}, {5, "пять"}, {6, "шесть"}, {7, "семь"}, {8, "восемь"}, {9, "девять"}, {10, "десять"},
                                {11, "одиннадцать"}, {12, "двенадцать"}, {13, "тринадцать"}, {14, "четырнадцать"}, {15, "пятнадцать"}, {16, "шестнадцать"}, {17, "семнадцать"}, {18, "восемнадцать"}, {19, "девятнадцать"},
                                {20, "двадцать"}, {30, "тридцать"}, {40, "сорок"}, {50, "пятьдесят"}, {60, "шестьдесят"}, {70, "семьдесят"}, {80, "восемьдесят"}, {90, "девяноста"},
                                {100, "сто"}, {200, "двести"}, {300, "триста"}, {400, "четыреста"}, {500, "пятьсот"}, {600, "шестьсот"}, {700, "семьсот"}, {800, "восемьсот"}, {900, "девятьсот"}};
QString termination[10][7]={
    {"", "", "", "тысяч", "", "", "миллионов"},
    {"", "", "", "тысяча", "", "", "миллион"},
    {"", "", "", "тысячи", "", "", "миллиона"},
    {"", "", "", "тысячи", "", "", "миллиона"},
    {"", "", "", "тысячи", "", "", "миллиона"},
    {"", "", "", "тысяч", "", "", "миллионов"},
    {"", "", "", "тысяч", "", "", "миллионов"},
    {"", "", "", "тысяч", "", "", "миллионов"},
    {"", "", "", "тысяч", "", "", "миллионов"},
    {"", "", "", "тысяч", "", "", "миллионов"}};
 
int main(int argc, char *argv[])
{
    setlocale(LC_ALL, "Russian");
 
    QCoreApplication a(argc, argv);
 
    int number;
    //int tt;
 
    while(true)
    {
        qDebug() << "Введите число: ";
        cin >> number;
        int tt {shetchik(number)};
        raspars(number, tt);
    }
    return a.exec();
}
 
int shetchik(int number)//считает колическтво цифр в числе
{
    int counter = 0;
 
    while(number)
    {
        number /= 10;
        counter++;
    }
    return counter;
}
 
int raspars(int number,int counter)//разбор числа на классы
{
    int lil;
    int counter2 = counter;
    int lcounter;
    while (number)
    {
        --counter;
        lcounter = counter / 3;
        lil = number / pow(10, lcounter * 3);
        number %= ((int)pow(10, lcounter * 3));
        counter -= 2;
        perevod(lil);
        tismill(lil, counter2);
    }
    return 0;
}
 
QString tismill(int number, int counter)//функция для подстановки слов из массива termination
{
    int tt = 0;
    int num = number;
 
    while(num)
    {
        num /= 10;
        tt++;
    }
 
    while (true)
    {
        if ((counter % 3) == 1) break;
 
        else 
                --counter;
        number %= ((int) pow(10, --tt));
    }
    QString ter = termination[number][counter];
    return ter;
}
 
QString perevod(int number)
{
    int counter {shetchik(number)};
    int celoe = 0;
    int numb = number;
    QString result;
 
    while (numb)
    {
        if ((numb / 10) == 1)//
        {
            result += collection[numb];
            counter -= 2;
            qDebug().nospace().noquote() << result;
            if (!counter) break;//выход
        }
        celoe = numb / pow(10, --counter);//оставляет первое число, деление на разрядность
        celoe *= pow(10, counter);//добавляет числу нужное количество нулей
        numb %= ((int) pow(10, counter));//удаляет первое число
        result += collection[celoe] + " ";//вызов ячейки из массива с целыми
 
        if (!(counter % 3))
          qDebug().nospace().noquote() << result + tismill();//Вызов функции  tismill
    }
    return result;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2022, 13:08
Ответы с готовыми решениями:

Проблема при вызове функции
Написал для себя простенькую напоминалку, выводящую указанное сообщение через определённый...

Класс - Ошибки при вызове методов: В вызове функции отсутствует список аргументов
Добрый вечер всем! При изучении и написании работы столкнулся с ошибкой от которой не могу...

Ошибка при вызове функции
Ошибка в строке 90, при пошаговом выполнении она появляется при вызове функции, до захода в нее,...

Ошибка при вызове функции
Добрый день! Есть функция по расчету детерминанта int _det(int size,double **arr,double &amp;det) {...

2
563 / 60 / 7
Регистрация: 27.03.2020
Сообщений: 186
02.09.2022, 13:12 2
Тебе нужна перегрузка функций С++.
2
2335 / 1822 / 753
Регистрация: 27.07.2012
Сообщений: 5,381
02.09.2022, 13:35 3
Цитата Сообщение от HoTCheeze Посмотреть сообщение
Мне нужно вызвать функцию tismill (строка 125) без аргументов. Можно ли так сделать? И как?
Без изменения функции tismill никак. Либо перегрузку создать, либо параметры по умолчанию добавить.
2
02.09.2022, 13:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2022, 13:35
Помогаю со студенческими работами здесь

Странности при вызове функции
Здравствуйте! На днях решил написать простой код который побитово шифрует текст. Вот собственно...

Ошибка при вызове функции
В функции NewWords вызывается функция correct,при отладке я не могу войти в эту функцию,к тому же...

Ошибка при вызове деструктора (при вызове delete в деструкторе)
Не могу найти ошибку, при вызове деструктора от класса, который был создан при помощи конструктора...

Исключение при вызове функции из DLL
При вызове функции инициализации получаю все время следующую ошибку: Мне кажется, что или я...

Создание переменной при вызове функции
Хочу создать переменную при вызове функции для укорачивания кода, например вместо такого: ...

Игнорирование ошибок при вызове функции
Подскажите пожалуйста возможно ли сделать вообще такое: Есть к примеру функция int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru