Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.99/74: Рейтинг темы: голосов - 74, средняя оценка - 4.99
5 / 5 / 4
Регистрация: 13.05.2014
Сообщений: 130
1

Число задом наперед

23.05.2014, 00:53. Просмотров 13423. Ответов 11
Метки нет (Все метки)

Помогите пожалуйста!!!!
Задача. Перевернуть число, введенное с клавиатуры, задом на перед. Например, введено 12345, должны вывести 54321
C++
1
2
3
4
5
6
7
# include <iostream>
using namespace std;
void main ()
{
int n(0);
cout<<"Enter number: ";
cin>>n;
?????????
Подключать библиотеки другие нельзя!!!!!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2014, 00:53
Ответы с готовыми решениями:

Вывести строку задом наперед
#include &lt;iostream&gt; using namespace std; int main() { int len; char temp; cin&gt;&gt;len; ...

Вывести строку задом наперед
1)Пользователь вводит строку данных программа выводит из нее только цифры. 2)Вывести строку задам...

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

Напечатать заданное слово задом наперед
Составить программу, которая печатает заданное слово задом наперед

11
5 / 5 / 12
Регистрация: 21.05.2014
Сообщений: 29
23.05.2014, 00:59 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main() {
    int num;
    int temp;
    int answer = 0;
    cout << "Enter any number" << endl;
    cin >> num;
    while(num!=0) {
        temp = num%10;
        answer=answer*10+temp;
        num = num/10;
    }
    cout << "New number: " << answer << endl;
    return 0;
}
0
32 / 32 / 19
Регистрация: 13.07.2011
Сообщений: 138
23.05.2014, 01:03 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
    int n;
    std::cin >> n;
    while (n != 0) {
        int num = n % 10;
        n /= 10;
        std::cout << num;
    }
 
    std::cout << std::endl;
 
    system("pause");
    return 0;
}
1
5 / 5 / 4
Регистрация: 13.05.2014
Сообщений: 130
23.05.2014, 01:04  [ТС] 4
Спасибо! Очень хорошый ответ! А через цикл for это реально сделать????
0
5 / 5 / 12
Регистрация: 21.05.2014
Сообщений: 29
23.05.2014, 01:06 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main() {
    int num;
    int temp;
    int answer = 0;
    cout << "Enter any number" << endl;
    cin >> num;
    for(;num!=0;) {
        temp = num%10;
        answer=answer*10+temp;
        num = num/10;
    }
    cout << "New number: " << answer << endl;
    return 0;
}
0
32 / 32 / 19
Регистрация: 13.07.2011
Сообщений: 138
23.05.2014, 01:09 6
Sapendo, А зачем, через for будет точно так же, т.е.
C++
1
for (;n != 0;)
и тело цикла точно такое же как если бы был цикл while
1
5 / 5 / 4
Регистрация: 13.05.2014
Сообщений: 130
23.05.2014, 01:20  [ТС] 7
Помогите разобраться теперь!
Предположим число 12
C++
1
2
3
4
5
6
7
 for(;num!=0;)//введенное число не должно равняться нулю
{
        temp = num%10;// поделили по модулю  temp = 2
        answer=answer*10+temp;//answer=0*10+2=2
        num = num/10;//num = 1
    }
    cout << "New number: " << answer << endl;
Не могу понять почему мы выводим answer и как получается 21??????
Какая функция переворачивает число?????
Спасибо за пояснения, хочу разобраться!!!!
0
9 / 9 / 6
Регистрация: 12.07.2013
Сообщений: 57
23.05.2014, 01:29 8
Лучший ответ Сообщение было отмечено Sapendo как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main () {
    int a = 0, temp = 0;
    cin >> a;
    while(a>0)
    {
        temp = a%10;
        a = a/10;
        cout << temp;
    }
    return 0;
}
1
32 / 32 / 19
Регистрация: 13.07.2011
Сообщений: 138
23.05.2014, 01:30 9
Sapendo, В комментариях к коду же все написано
Сначала берем от числа num по модулю 10, т.е. берется последняя цифра, например 2.
Затем к числу answer прибавляем temp, предварительно умножив число answer на 10.
И далее делим число num на 10, чтобы убрать последнюю цирфу.
0
5 / 5 / 4
Регистрация: 13.05.2014
Сообщений: 130
23.05.2014, 01:32  [ТС] 10
Коментарии к коду это я написал!!!! Но вопросы те же!!!!!
0
32 / 32 / 19
Регистрация: 13.07.2011
Сообщений: 138
23.05.2014, 02:46 11
Sapendo, Если быть кратким: С помощью оператора взятия по модулю % берем от числа num последнюю цифру (проще говоря, делим число на 10 и берем остаток от деления). Далее, чтобы поместить то число. которое у нас получилось после операции взятия по модулю, мы сначала должны итоговое число answer умножить на 10, чтобы каждый раз когда мы добавляли цифру в answer, у нас она добавлялась в конец. Затем мы делим введенное нами число num на 10, чтобы убрать последнюю цифру, т.е было число 21, делим на 10, остается 2, потому что у нас num является целочисленной переменной, соответственно дробная часть теряется.
1
60 / 60 / 19
Регистрация: 11.07.2013
Сообщений: 304
23.05.2014, 04:00 12
% - выдает остаток от деления
Т.е. 321 % 10 выдаст единицу
123 % 10 выдаст тройку
4 % 2 = 0
5 % 2 = 1
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2014, 04:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Вывести последовательность слов задом наперед
Задание: Дана строка, группу букв, разделенных пробелами (одним или больше) будем считать словами....

Вывести вписанное пользователем слово задом наперед
Добрый день нужно вывести,вписанное пользователем слово задом наперед в C++ помогите как можно...

Вывод строки задом наперед через 1 символ
Мне дано задание: 1)Сначала выведите третий символ этой строки. 2)Во второй строке выведите...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.