Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mikle90
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 23
#1

Программа вывода числа в обратном порядке - C++

11.02.2013, 09:11. Просмотров 884. Ответов 3
Метки нет (Все метки)

Здравствуйте! Задача: Напишите функцию, которая воспринимает целое значение и возвращает число с обратным порядком цифр. Программу написал, но почему-то ответ не выводит. Помогите разобраться


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
#include<iostream>
#include<math.h>
using namespace std;
int obratnoe (int);
int main()
{
    setlocale(0,"");
    int n;
 
    cout << "Введите число: ";
    cin >> n;
    cout << "Ваше число наоборот: " << obratnoe(n) ;
}
int obratnoe (int ch)
{
    int del = 1, kolvo = 1, obratn ;
 
    while (ch/del > 10) // определение количества цифр
    {
        del *= 10;
        kolvo++;
    }
    int a = 10, del2 = 1;
    for ( ; kolvo >= 1; kolvo--)
    {
        obratn = ch;
        while (ch > a)
        {
            obratn = obratn % (int)pow(10.0,kolvo);
        }
        a *= 10;
        return obratn/del2;
        del *= 10;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 09:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа вывода числа в обратном порядке (C++):

Рекурсивная функция для вывода цифр натурального числа в обратном порядке - C++
написать рекурсивную функцию для вывода на экран цифр натурального числа в обратном порядке. помогите пожалуйстаа:)

Рекурсивная процедура для вывода на экран цифр натурального числа в обратном порядке! - C++
Написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке!

Рекурсивная процедура для вывода на экран цифр натурального числа в обратном порядке - C++
Разработать блок-схему и программу для решения задач с использованием функций. Задание:Написать рекурсивную процедуру для вывода на экран...

Реализовать рекурсивный алгоритм вывода строки в обратном порядке путём устранения последнего символа в строке - C++
Кто-нибудь помогите пожалуйста решить данную задачку: Реализовать рекурсивный алгоритм вывода строки в обратном порядке путём устранения...

Для каждого числа последовательности вывести новое число, которое получится после записи цифр числа в обратном порядке - C++
Пожалуйста, напишите программы в С++ по функциям!). 29. Вводится последовательность из N целых чисел. Для каждого числа...

Определить функции: сумма цифр числа, вращение числа (цифры - в обратном порядке), деление чисел (результат - действительное число) - C++
Определить класс: целое число. Определить функции: сумма цифр числа, вращение числа (цифры - в обратном порядке), деление чисел (результат...

3
kuli4ok
31 / 31 / 3
Регистрация: 10.10.2012
Сообщений: 88
11.02.2013, 09:43 #2
Я думаю, что такой способ будет легче:
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
#include <stdio.h>
 
int invers(int a)
{
    char *buffer = new char[100]; 
    sprintf(buffer, "%d", a);
    char *tmp = new char[100];
    int k;
    for(int i=0; buffer[i]!='\0'; i++)
        k = i;
    for(int i=0; i<=k; i++)
        tmp[i] = buffer[k-i];
    delete [] buffer;
    sscanf(tmp, "%d", &k);
    delete [] tmp;
    return k;
}
 
int main()
{
    int k;
    printf("Введите число: ");
    scanf("%d", &k);
    printf("Полученное число: %d\n", invers(k));
    return 0;
}
0
Mikle90
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 23
11.02.2013, 12:37  [ТС] #3
Да, легче, но массивы и тип char еще не проходили

Добавлено через 2 часа 52 минуты
Подскажите, в чем проблема!
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
11.02.2013, 12:50 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
int obratnoe(int num)
{
   int res = 0;
 
   do
   {
      res *= 10;
      res += num % 10;
   }while ((num /= 10) != 0);
 
   return res;
}
Добавлено через 2 минуты
Цитата Сообщение от Mikle90 Посмотреть сообщение
while (ch/del > 10) // определение количества цифр
* * {
* * * * del *= 10;
* * * * kolvo++;
* * }
Здесь ch не изменяется в цикле, поэтому значение выражения ch/del будет постоянным.
...хотя изменяется del это можно пропустить.
Добавлено через 4 минуты
Цитата Сообщение от Mikle90 Посмотреть сообщение
for ( ; kolvo >= 1; kolvo--)
* * {
* * * * obratn = ch;
* * * * while (ch > a)
* * * * {
* * * * * * obratn = obratn % (int)pow(10.0,kolvo);
* * * * }
* * * * a *= 10;
* * * * return obratn/del2;
* * * * del *= 10;
* * }
Опять же выход из цикла while нет.
Реторн выполняется один раз, смысла его в цикл ставить никакого, по такой логике функция должна вернуть последнюю цифру числа.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2013, 12:50
Привет! Вот еще темы с ответами:

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

В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке - C++
Ребят выручайте не могу зачет сдать из-за этой лабы =( не могу сделать. надо сделать через тип данных вектор. &quot; В заданном массиве...

Вывести числа в обратном порядке(рекурсия) - C++
Здравствуйте, есть задача в которой нужно вывести числа в обратном порядке. Сначала вводится количество элементов , а затем сами...

Нужно переставить числа в обратном порядке - C++
Даны 4 числа. Организуйте перестановку данных чисел в обратном порядке. Перестановку двух чисел организуйте в виде отдельной функции....


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
11.02.2013, 12:50
Ответ Создать тему
Опции темы

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