Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 05.02.2021
Сообщений: 28

при выводе по разрядам числа 123456789 получается 1 2 3 4 6 6 8 8 9

10.02.2021, 20:47. Показов 755. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, при выводе по разрядам числа 123456789 получается 1 2 3 4 6 6 8 8 9. Семерка с пятеркой откуда то получили лишнюю единицу. Почему? Хочу разобраться. Советчиков кроме Вас нет. Спасибо.


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
#include <iostream>
#include <cmath>
 
using namespace std;
 
 
int enterNamber()
{
    cout << "Введите число: ";
    int a;
    cin >> a;
    return a;
}
 
int main()
{
    setlocale(LC_ALL, "RUSSIAN");
    int a,a1,a2,a3,i=0;
 
       a = enterNamber();
        cout<< endl;
        a3=a;
        cout<< endl;
        for(;a3>0;i++){
                a3/=10;
        }
        cout<<" В введенном числе "<<i<<" цифр";
 
    cout<< endl;
 
for(int j=i-1; j>=0; j--)
{
    a2=pow(10,j);
   a1=a/a2%10;
   cout<<a1<<"\n"; 
}
 
       
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.02.2021, 20:47
Ответы с готовыми решениями:

Сколькими способами можно переставить цифры числа 123456789
Уважаемые форумчане, помогите, пожалуйста, решить. Вроде задача простая, но что-то не могу разобраться((( Сколькими способами можно...

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

При выводе получается какая-то ересь в матрице
Дано задание: написать программу,транспонирующую матрицу, используя указатели и единицы трансляции, программа написана, но итогом является...

7
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
10.02.2021, 21:13
Цитата Сообщение от maytreya Посмотреть сообщение
Добрый день, при выводе по разрядам числа 123456789 получается 1 2 3 4 6 6 8 8 9. Семерка с пятеркой откуда то получили лишнюю единицу. Почему? Хочу разобраться. Советчиков кроме Вас нет. Спасибо.
Во-первых, вроде всё нормально выводится.
Во-вторых, когда работаешь с целыми числами, не стоит использовать дробные - a2=pow(10,j). Эту степень десятки ты бы легко смог рассчитать в предыдущем цикле

Добавлено через 4 минуты
В-третьих
C++
1
2
3
4
5
6
7
8
char buf[32] = {0};
char *p = buf + 31;
while (a != 0)
{
    *(--p) = a % 10 + '0';
    a /= 10;
}
std::cout << p << std::endl;
0
0 / 0 / 0
Регистрация: 05.02.2021
Сообщений: 28
10.02.2021, 21:48  [ТС]
Спасибо. Я правильно понял, что функция pow возвращает дробное значение, а вот здесь (a1=a/a2%10 a2 неявно преобразуется в интовое? И при округлении добавляется лишняя единичка?
0
Заблокирован
11.02.2021, 01:20
Цитата Сообщение от maytreya Посмотреть сообщение
Спасибо. Я правильно понял, что функция pow возвращает дробное значение, а вот здесь (a1=a/a2%10 a2 неявно преобразуется в интовое? И при округлении добавляется лишняя единичка?
нет, усечение происходит еще при присваивании.
a2=pow(10,j); // а 2 может быть на малую долю меньше ожидаемого, и при приведении к int просто урежет дробную часть

например a2 = pow(10,2);

pow(10,2) может вернуть 99.9999999999999, к примеру
а2 при приведении станет 99

и дальше a1=a/a2%10 уже будет совсем не то что ожидалось,
1
0 / 0 / 0
Регистрация: 05.02.2021
Сообщений: 28
12.02.2021, 19:39  [ТС]
Спасибо. Попробую написать свою функцию с интовым возвратом
0
Заблокирован
12.02.2021, 20:11
Цитата Сообщение от maytreya Посмотреть сообщение
Попробую написать свою функцию с интовым возвратом
в этом нет необходимости, просто используйте округление
например с помощью :
http://www.cplusplus.com/reference/cmath/lrint/

Добавлено через 7 минут
p.s. если для практики ради, то конечно можно и написать
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
12.02.2021, 20:33
Цитата Сообщение от maytreya Посмотреть сообщение
неявно преобразуется в интовое?
нет, int / int = int, неявных преобразований и приведений нет, это целочисленное деление в C/С++
0
0 / 0 / 0
Регистрация: 05.02.2021
Сообщений: 28
12.02.2021, 21:56  [ТС]
Понял. Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.02.2021, 21:56
Помогаю со студенческими работами здесь

Не получается осуществить ссылки при выводе категорий
Проблема такова нужно осуществить вывод категорий в виде ссылок по примеру этого скриншота меня получилось сделать просто вывод категорий...

При выводе содержимого сайта не получается конвертировать в нужную кодировку
Добрый день. Вот таким кодом считываю строки из сайта и вывожу на экран: String line; String url_str=TEXT_URL; try { ...

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

При выводе посредством cout() получается один и тот же набор цифр
Здравствуйте дорогие форумчане. У меня трабл. В независимости от того что я подаю в cout, результат вывода у меня всегда один и тот же...

Не получается скрыть, либо закрыть форму, при выводе другой формы
private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == &quot;Administrator&quot; &amp;&amp; textBox2.Text ==...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru