Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/64: Рейтинг темы: голосов - 64, средняя оценка - 4.75
 Аватар для posol_7
18 / 18 / 13
Регистрация: 19.11.2014
Сообщений: 156

Вывести все цифры введенного натурального числа в обратном порядке

06.01.2015, 00:06. Показов 13890. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите написать программу на С++. Вводится натуральное число. Вывести все цифры числа в обратном порядке. Например (есть 4826, должно получиться 6284). Вот, что-то писал, но уж сильно намутил(

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
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <conio.h>
 
using namespace std;
 
int main()
{   setlocale (LC_ALL, "Russian");
 
const int n(4); 
float a[n];
 
for (int i=0; i<n; i++){    
cin>>a[i];}
 
cout<<"Mасив :\n";
for (int i=0; i<n; i++){
    cout<<a[i];}
 
cout << "\tОбработано: \n";
for (int i=n; i>0; i-=1){
    cout<<a[i];}
 
    _getch();
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.01.2015, 00:06
Ответы с готовыми решениями:

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

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

Рекурсивные функции: вывести цифры натурального числа n в обратном порядке
Помогите пожалуйста решить!!! Рекурсивно описать функцию rev_print (n), которая выводит цифры натурального числа n в обратном порядке. С++

16
122 / 24 / 6
Регистрация: 31.12.2014
Сообщений: 164
06.01.2015, 00:14
Цитата Сообщение от posol_7 Посмотреть сообщение
Помогите написать программу на С++. Вводится натуральное число. Вывести все цифры числа в обратном порядке. Например (есть 4826, должно получиться 6284). Вот, что-то писал, но уж сильно намутил(

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
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <conio.h>
 
using namespace std;
 
int main()
{   setlocale (LC_ALL, "Russian");
 
const int n(4); 
float a[n];
 
for (int i=0; i<n; i++){    
cin>>a[i];}
 
cout<<"Mасив :\n";
for (int i=0; i<n; i++){
    cout<<a[i];}
 
cout << "\tОбработано: \n";
for (int i=n; i>0; i-=1){
    cout<<a[i];}
 
    _getch();
    return 0;
}
Почему a[n] у вас float? Мы же вроде в целых числах. Зачем вы считываете 4 числа, дано ведь одно! Его и надо считывать.
Ну и дальше решите сначала задачу попрошу: подумайте, как у четырёхзначного числа вычислить последнюю цифру.

P.s. Последний элемент массива имеет индекс n-1, последний цикл должен с него начинаться. Но это пока не очень важно.
1
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
06.01.2015, 00:25
C++
1
2
3
4
string s;
cin >> s;
reverse(s.begin(),s.end());
cout << s;
2
122 / 24 / 6
Регистрация: 31.12.2014
Сообщений: 164
06.01.2015, 00:30
Цитата Сообщение от ltkj Посмотреть сообщение
Почему a[n] у вас float? Мы же вроде в целых числах. Зачем вы считываете 4 числа, дано ведь одно! Его и надо считывать.
Ну и дальше решите сначала задачу попрошу: подумайте, как у четырёхзначного числа вычислить последнюю цифру.

P.s. Последний элемент массива имеет индекс n-1, последний цикл должен с него начинаться. Но это пока не очень важно.
Попрошу = попроще
0
 Аватар для posol_7
18 / 18 / 13
Регистрация: 19.11.2014
Сообщений: 156
06.01.2015, 00:31  [ТС]
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "rus");
 
      unsigned long long int x, k;
      cout<<"Введите число: "; cin>>x;
      cout << "Получили: ";
      while(x>0)
      {
          k=x%10;
          x=x/10;
          cout << k;
      }
getch();
return 0;
}
0
122 / 24 / 6
Регистрация: 31.12.2014
Сообщений: 164
06.01.2015, 00:34
Цитата Сообщение от posol_7 Посмотреть сообщение
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "rus");
 
      unsigned long long int x, k;
      cout<<"Введите число: "; cin>>x;
      cout << "Получили: ";
      while(x>0)
      {
          k=x%10;
          x=x/10;
          cout << k;
      }
getch();
return 0;
}
Извиняюсь, а если не секрет, почему выбор пал именно на unsigned long long int?
0
 Аватар для posol_7
18 / 18 / 13
Регистрация: 19.11.2014
Сообщений: 156
06.01.2015, 00:49  [ТС]
Цитата Сообщение от ltkj Посмотреть сообщение
Извиняюсь, а если не секрет, почему выбор пал именно на unsigned long long int?
Для работы с большими числами.
0
0 / 0 / 5
Регистрация: 05.01.2015
Сообщений: 46
06.01.2015, 00:50
Лучший ответ Сообщение было отмечено posol_7 как решение

Решение

Цитата Сообщение от posol_7 Посмотреть сообщение
Помогите написать программу на С++. Вводится натуральное число. Вывести все цифры числа в обратном порядке. Например (есть 4826, должно получиться 6284). Вот, что-то писал, но уж сильно намутил(
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Rus");
    int n = 0, b = 0;
    cout << "Введите число: ";
    cin >> n;
    while(n)
    {
        b = (b * 10) + n % 10;
        n /= 10;
    }
    cout << "\n\nЧисло перевертыш: ";
    cout << b;
    getch();
    return 0;
}
0
122 / 24 / 6
Регистрация: 31.12.2014
Сообщений: 164
06.01.2015, 00:53
Цитата Сообщение от posol_7 Посмотреть сообщение
Для работы с большими числами.
Да это понятно. Меня просто смутил ваш резкий прогресс в программировании а вообще если задача с какой-то онлайн-системы, там обычно ограничения пишут. Их лучше указывать.

И да, алгоритм dimension работает на гораздо бОльших числах, если что
0
 Аватар для posol_7
18 / 18 / 13
Регистрация: 19.11.2014
Сообщений: 156
06.01.2015, 00:54  [ТС]
Цитата Сообщение от Nuckles Посмотреть сообщение
while(n)
* * {
* * * * b = (b * 10) + n % 10;
* * * * n /= 10;
* * }
Спасибо, работает. Можете объяснить вот эту часть?
0
0 / 0 / 5
Регистрация: 05.01.2015
Сообщений: 46
06.01.2015, 00:58
Цитата Сообщение от posol_7 Посмотреть сообщение
Спасибо, работает. Можете объяснить вот эту часть?
На каждом шаге берём остаток от деления числа на 10, получая последнюю цифру и добавляя в конец нового числа.
0
 Аватар для posol_7
18 / 18 / 13
Регистрация: 19.11.2014
Сообщений: 156
06.01.2015, 00:59  [ТС]
Цитата Сообщение от ltkj Посмотреть сообщение
Да это понятно. Меня просто смутил ваш резкий прогресс в программировании а вообще если задача с какой-то онлайн-системы, там обычно ограничения пишут. Их лучше указывать.
И да, алгоритм dimension работает на гораздо бОльших числах, если что
ок, спасибо) я пару месяцев назад только на паскале писал. решил наперед подучить си: смотрел видеоуроки, читал литературу, вот до практики добрался...
0
0 / 0 / 5
Регистрация: 05.01.2015
Сообщений: 46
06.01.2015, 01:01
ltkj, зачем использовать массив?
0
5 / 5 / 2
Регистрация: 07.05.2014
Сообщений: 101
06.01.2015, 01:02
Для работы с большими числами в таких задачках, как по мне, лучше использовать символьную строку.. Дописал проверку на число, кота на клавиатуру запустил походить - и будет ваше многомиллионное число. Да и выводить каждый раз после выделения цифры ее так же не понимаю зачем. Выделить их в массив и либо рекурсивно вызывать до последнего индекса массива и потом выводить, либо зразу поставить "пока счетчик не ноль" и от счетчик минус один отталкиваться...
P.S. было адресовано posol_7
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
06.01.2015, 01:02
Цитата Сообщение от posol_7 Посмотреть сообщение
Спасибо, работает. Можете объяснить вот эту часть?
а че там объяснять это очевидно
b результируешее число
допустим изначально у нас 25 b=0
C++
1
2
3
4
b = (b * 10)/* умножаем на 10, можно сказать сдвигаем*/+ n % 10/* добавляем младший разряд из n */ ;
b = (0 * 10)/*0*10=0*/+ n % 10/*25%10=5*/  ; итого b=5
n /= 10;
n = 25/10=2;
второй проход
C++
1
2
3
b = (5 * 10)/* 5*10=50*/+ n % 10/*2%10=2*/  ; итого b=52
n /= 10;
n = 2/10=0;
больше проходов нет
в b=52
2
0 / 0 / 5
Регистрация: 05.01.2015
Сообщений: 46
06.01.2015, 01:02
Цитата Сообщение от posol_7 Посмотреть сообщение
ок, спасибо) я пару месяцев назад только на паскале писал. решил наперед подучить си: смотрел видеоуроки, читал литературу, вот до практики добрался...
Пожалуста
0
122 / 24 / 6
Регистрация: 31.12.2014
Сообщений: 164
06.01.2015, 01:05
Цитата Сообщение от Nuckles Посмотреть сообщение
ltkj, зачем использовать массив?
А где я его предлагал использовать? Моя цель не выложить готовое решение, а подвести человека к нему тот коммент про индекс последнего специально поместил под p.s. и написал дальше, что это не очень важно, ибо в другой задаче такая ошибка обязательно встретится, если о ней не рассказать сейчас.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2015, 01:05
Помогаю со студенческими работами здесь

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

Вывести цифры введенного числа через пробел в обратном порядке
С использыванием цикла while 3. Написать программу, которая выводит на экран все цифры введенного пользователем числа через пробел в...

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

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

Вывести все цифры числа по одной, в обратном порядке
Задача на рекурсию. Дано натуральное число N. Выведите все его цифры по одной, в обратном порядке, разделяя их пробелами или новыми...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru