Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 99
1

Как в переменную int добавить ноль перед числом

05.12.2020, 14:41. Показов 4199. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть переменная res, ее значение вычисляет программа, но нужно перед этим значением добавить 0, именно в переменную res, а не вывод

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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int function(int n, int k)
{
    int res = 0;
    n = abs(n); 
    int size = (int)log10(n) + 1;
    res = n / pow(10, size - k);
 
    if (n / pow(10, k - 1) = 0)
    {
        res = res/10;  //вот на этом моменте нужен 0 впереди 
    }
 
    return res;
}
 
 
int main()
{
    setlocale(LC_ALL, "ru");
    float n,k;
 
    while (true)
    {
        cout << "Введите n:";
        cin >> n;
        if ((!cin) || (fmod(n,1) != 0))
        {
            cout << "n должно быть целым числом\n";
            cin.clear();
            while (cin.get() != '\n');
        }
        else break;
    }
 
    while (true)
    {
        cout << "Введите k:";
        cin >> k;
        if ((!cin) || (k > ((int)log10(n)+1)) || (fmod(k, 1) != 0))
        {
            cout << "k должно быть целым числом и быть не больше, чем разрядов числа n\n";
            cin.clear();
            while (cin.get() != '\n');
        }
        else break;
    }
    cout << "Число, содержащее k первых цифр числа n:" << function(n, k) << endl;
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2020, 14:41
Ответы с готовыми решениями:

Добавить ноль перед числом, если количество его знаков < 4
using namespace std; int StrLen(const char* str) { assert(str); int lenght = 0;...

Как вывести ноль перед числом?
Какой ввод или вывод программы, обеспечит правильный вывод длительности песни, в формате HH:MM:SS....

Как добавить пробел перед положительным числом в массиве
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; int main() { int i; float dx =...

При выводе ответа перед числом или True/False выводит ноль
Всем привет. Решаю такую задачу. A = input(int()) if (-15 &lt; int(A) &lt;= 12) or (14 &lt; int(A) &lt;...

4
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
05.12.2020, 14:43 2
Cats_, только представляя как строку символов
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
05.12.2020, 15:03 3
Цитата Сообщение от Cats_ Посмотреть сообщение
нужно перед этим значением добавить 0, именно в переменную res, а не вывод
ты гуманитарий?

Кликните здесь для просмотра всего текста
тип int хранит числа.

и если ты когда нибудь заканчивал 5й класс общеобразовательной школы,
то ты должен знать, что нули слева, то есть перед значением собственно числа,
являются не значимыми.

число 01 или 00000001 или 00000000000000000001, это тоже самое, что и просто число 1.

поэтому, на полном основании ты можешь считатать,
что в твоей переменной res в самом начале стоит миллиард нулей.

просто их не видно.
ведь ты добавил их:
Цитата Сообщение от Cats_ Посмотреть сообщение
именно в переменную res, а не вывод
что бы увидеть нули перед числом,
их нужно добавлять именно в вывод.
0
361 / 262 / 107
Регистрация: 28.04.2015
Сообщений: 1,608
05.12.2020, 15:03 4
хм...если ты имеешь побитовое хранение в памяти, то в соот-щих битах и так будут нули, просто они ведущие, поэтому при выводе не печатаются.

поэтому, когда ты пишешь, что именно в переменную res, то там де-факто и так нули, а вот при выводе их нет

зы: я так понял проблему
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
05.12.2020, 15:35 5
В printf можно поиграться с форматом %0*d
Но с cout еще проще
C++
1
2
cout << "0" << res;
printf("0%d", res);
Но это тебя не устроит...

Добавлено через 1 минуту
Еще так
C++
1
2
char s[20] = "0";
sprintf(s+1, "%d", res);
0
05.12.2020, 15:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2020, 15:35
Помогаю со студенческими работами здесь

Добавить ноль перед запятой в Textbox
Нужен фрагмент кода для обработки текстбокса. Суть заключается в том, чтобы если в текстбоксе...

Как добавить "0" перед числом
Добрый день форумчане! Подскажите что я делаю ни так. Вот здесь я без проблем записываю в...

Можно ли преобразать переменную bool в переменную int, short. И переменную string в переменную short, int и
И переменную string в переменную short, int и т.д.

Ошибка ожидаемый инициализатор перед int (int) int main ()
Здравствуйте Я новичок в C++ и недавно столкнулся с такой ошибкой при передачи массива в...

Как в C++ вставлять перед определенным елементом символ ноль
как в C++ вставлять перед определенным елементом символ ноль помогите понять и розобраться, если...

Найти цифру стоящую перед наименьшим или перед наибольшим числом
Мне учитель сказал решить задание:Найти максимальное ...


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

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