С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
6 / 6 / 0
Регистрация: 23.02.2021
Сообщений: 67

Инвертировать цифры десятичного числа

13.04.2021, 15:42. Показов 3178. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны 5 положительных чисел. Требуется перевернуть каждое из чисел и распечатать их в обратном порядке. При этом, если перевернутое число начинается с нуля, то ведущие нули не печатаются. Например, вместо 230 следует вывести 32, а вместо 100 — 1. Пять чисел вводятся в одной строке через пробел. Требуется также вывести пять чисел через пробел.
Ввод
1 2 3 4 5
Вывод
5 4 3 2 1
Ввод
23 543 100 230 7
Вывод
7 32 1 345 32

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main() {
    string s;
    getline(cin , s);
    cin >> s;
    int i=s.size()-1;
    for (i;i>=0;i--) {
        if (s[i] != char(0)) {
            cout << s[i];
        } else if (s[i] == char(0) && s[i+1] != ' ') {
            cout << s[i];
        }
    }
  return 0;
}
вот мой код, уже час сижу не могу с нулями разобраться, получилось убрать только один, и то тот код удалился . Помогите пожалуйста.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.04.2021, 15:42
Ответы с готовыми решениями:

Инвертировать цифры десятичного числа
Как сделать номер 15 так, чтоб если мы записали число с нулём на конце, то при перевороте ноль остался и оказался в начале П.5.18.Правил ...

Инвертировать цифры десятичного числа
Не могу понять код задачи Дано натуральное число n заранее неизвестной разрядности. Сформировать и вывести на экран число, ...

Инвертировать цифры пятиразрядного десятичного числа
Напишите программу, которая запрашивает пятиразрядное число и выводит число, составленное из цифр данного числа взятых задом наперёд. ...

11
Злостный нарушитель
 Аватар для Verevkin
10252 / 5678 / 1262
Регистрация: 12.03.2015
Сообщений: 26,314
13.04.2021, 15:49
Цитата Сообщение от uarts Посмотреть сообщение
уже час сижу не могу с нулями разобраться, получилось убрать только один, и то тот код удалился
Самая очевидная ошибка - пихать весь говнокод в main().
Всегда разбивай задачу на подзадачи, желательно независимые.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// реверс десятичного беззнакового целого циклический
unsigned reverse(unsigned x)
{
  unsigned a = 0;
  while (x) a = 10 * a + (x % 10), x /= 10;
  return a;
}
 
// реверс десятичного беззнакового целого рекурсивный
unsigned reverse_recursively(unsigned x, unsigned a)
{
  return x ? reverse_recursively(x / 10, 10 * a + (x % 10)) : a;   
}
0
6 / 6 / 0
Регистрация: 23.02.2021
Сообщений: 67
13.04.2021, 16:11  [ТС]
спасибо конечно, но мне просто чужой код не нужен, в чём ошибка моего кода?
0
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
13.04.2021, 16:21
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <sstream>
using namespace std;
 
int main(){
  int n;
 
  stringstream s;
  for(int i=1;i<=5;i++){
     cin>>n;
     while(n){
        s<<n%10;
        n/=10;
     }
     s<<' ';
  }
  while(s>>n)
     cout<<n<<"  ";
 return 0;
}
0
1 / 0 / 1
Регистрация: 21.03.2021
Сообщений: 1
13.04.2021, 16:48
Лучший ответ Сообщение было отмечено uarts как решение

Решение

у вас тоже ошибка
правильный код

C++
1
2
3
4
5
6
7
8
9
10
11
unsigned reverse(unsigned x)
{
  unsigned a = 0;
  while (x) a = 10 * a + (x % 10), x /= 10;
  return a;
}
 
unsigned reverse_recursively(unsigned x, unsigned a)
{
  return x ? reverse_recursively(x / 10, 10 * a + (x % 10)) : a;   
}
0
3 / 3 / 0
Регистрация: 12.04.2021
Сообщений: 55
13.04.2021, 18:08
А можно понять какой полностью правильный код в итоге? да и ошибки в коде первом тоже разобрать хочется
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.04.2021, 18:20
vitek2000, правильный код тот который выдаёт правильный результат. пара примеров ввода-вывода - в условии задачи. а вообще есть специальные тестирующие системы, которые проверяют код при разных входных данных.
Цитата Сообщение от vitek2000 Посмотреть сообщение
да и ошибки в коде первом тоже разобрать хочется
с самого начала неправильный подход к решению - в задаче на целочисленные данные ТС начинает применять их символьное представление
0
3 / 3 / 0
Регистрация: 12.04.2021
Сообщений: 55
13.04.2021, 18:25
Цитата Сообщение от Yetty Посмотреть сообщение
vitek2000, правильный код тот который выдаёт правильный результат. один из примеров ввода-вывода - в условии задачи. а вообще есть специальные тестирующие системы, которые проверяют код при разных входных данных.

с самого начала неправильный подход к решению - в задаче на целочисленные данные ТС начинает применять их символьное представление
Про ошибки ясно, а про код я немного не то имел ввиду, именно почему в коде без функций ничего местами не меняет, а добавляет пробелов к тому же, сам немного не понял почему с функциями (первый ответ) мэйн не указан, хотя там просто переменные можно обьявить но спросить хотелось наверняка
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.04.2021, 18:31
vitek2000, вот полное решение:
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
#include <iostream>
using namespace std;
 
int ReverseNumber(int number)
{
    int n = 0;
    while (number)
    {
        n = 10 * n + number % 10;
        number /= 10;
    }
 
    return n;
}
 
int main()
{
    const int n=5;
    int a[n];
        
    for (int i = 0; i < n; i++)      
      cin >> a[i];      
          
    for (int i = n-1; i >= 0; i--)
        cout << ReverseNumber(a[i]) <<" ";
    cout << "\n";  
 
system("pause");
return 0;
}
0
3 / 3 / 0
Регистрация: 12.04.2021
Сообщений: 55
13.04.2021, 18:33
спасибо еще раз)
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.04.2021, 18:36
Цитата Сообщение от vitek2000 Посмотреть сообщение
почему в коде без функций ничего местами не меняет
задавайте вопрос так, чтобы не только Вам было понятно что интересует
Цитата Сообщение от vitek2000 Посмотреть сообщение
почему с функциями (первый ответ) мэйн не указан
автор поста написал только основную часть кода (функцию) в расчёте на то, что ТС должен сам добавить остальное
0
Злостный нарушитель
 Аватар для Verevkin
10252 / 5678 / 1262
Регистрация: 12.03.2015
Сообщений: 26,314
13.04.2021, 18:44
Цитата Сообщение от Yetty Посмотреть сообщение
автор поста написал только основную часть кода (функцию) в расчёте на то, что ТС должен сам добавить остальное
Я всегда так делаю. И остальным отвечающим советую делать также.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.04.2021, 18:44
Помогаю со студенческими работами здесь

Инвертировать цифры десятичного представления числа
Сделать начало концом. Пример : Ввод данных : 43210 Выход данных : 01234

Инвертировать порядок цифр десятичного числа
Дано число n, десятичная запись которого не содержит нулей. Получите число, записанное теми же цифрами, но в противоположном порядке. При...

Переставьте местами цифры десятичного числа так, чтобы сначала оказались цифры, меньшие пяти
Решить не используя массив! Дано четырехзначное число. Переставьте местами цифры так, чтобы сначала оказались цифры, меньшие пяти.

Инвертировать цифры четырехзначного числа
помогите написать программу переворачивающую 4-хзначное число, и чтобы была проверка условия если число не 4-х значное то программа...

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru