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

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

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

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

11.02.2013, 09:11. Просмотров 771. Ответов 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;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 09:11     Программа вывода числа в обратном порядке
Посмотрите здесь:

Переписать числа из массива X в массив Y в обратном порядке C++
Программа для записи в файл чисел в обратном порядке C++
C++ Реализовать рекурсивный алгоритм вывода строки в обратном порядке путём устранения последнего символа в строке
Рекурсивная процедура для вывода на экран цифр натурального числа в обратном порядке! C++
Рекурсивная процедура для вывода на экран цифр натурального числа в обратном порядке C++
C++ Вывести числа в обратном порядке(рекурсия)
C++ В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке
C++ Нужно переставить числа в обратном порядке
Рекурсивная функция для вывода цифр натурального числа в обратном порядке C++
C++ Переставить цифры числа в обратном порядке
C++ Вывести цифры числа в прямом и обратном порядке
C++ Считать числа через пробел в обратном порядке

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
}
Mikle90
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 23
11.02.2013, 12:37  [ТС]     Программа вывода числа в обратном порядке #3
Да, легче, но массивы и тип char еще не проходили

Добавлено через 2 часа 52 минуты
Подскажите, в чем проблема!
kazak
3031 / 2352 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
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 нет.
Реторн выполняется один раз, смысла его в цикл ставить никакого, по такой логике функция должна вернуть последнюю цифру числа.
Yandex
Объявления
11.02.2013, 12:50     Программа вывода числа в обратном порядке
Ответ Создать тему
Опции темы

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