C++: Обернуть цифры в числе (для последовательности)

Новая задачка.

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

Примечание: Сделать нужно без применения динамической памяти.

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

Полный код:

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "stdafx.h"
#include <iostream>
#include <locale>
 
using namespace std;
 
long int reverse(long int number) 
{
    long int revNum = 0;
    while (number) 
    {
       revNum = revNum * 10 + number % 10;
       number /= 10;
    }
    return revNum;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int SIZE = 100;
    int arr [SIZE], n;
 
    setlocale(LC_ALL, "Russian");
    cout << "Введите n ";
    cin >> n;
    if (n > SIZE)
    {
        cout << "Ошибка! n больше максимального значения! Введите меньшее число n";
        system("pause");
        return -1;
    }
    // Ввод данных с клавиатуры. Заполнение массива. 
    for (int i = 0; i < n; i++)
    {
        cout << "Введите " << i << " элемент массива:";
        cin >> arr[i]; 
    }
    // Вывод исходного массива на экран
    for (int i = 0; i < n; i++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;
    // Вывод измененного массива
    for (int i = 0; i < n; i++)
    {
        cout << reverse(arr[i]) << " ";
    }
    return 0;
}
#include "stdafx.h"
#include <iostream>
#include <locale>

using namespace std;

long int reverse(long int number) 
{
    long int revNum = 0;
    while (number) 
    {
       revNum = revNum * 10 + number % 10;
       number /= 10;
    }
    return revNum;
}

int _tmain(int argc, _TCHAR* argv[])
{
	const int SIZE = 100;
	int arr [SIZE], n;

	setlocale(LC_ALL, "Russian");
	cout << "Введите n ";
	cin >> n;
	if (n > SIZE)
	{
		cout << "Ошибка! n больше максимального значения! Введите меньшее число n";
		system("pause");
		return -1;
	}
	// Ввод данных с клавиатуры. Заполнение массива. 
	for (int i = 0; i < n; i++)
	{
		cout << "Введите " << i << " элемент массива:";
		cin >> arr[i]; 
	}
	// Вывод исходного массива на экран
	for (int i = 0; i < n; i++)
	{
		cout << arr[i] << " ";
	}
	cout << endl;
	// Вывод измененного массива
	for (int i = 0; i < n; i++)
	{
		cout << reverse(arr[i]) << " ";
	}
	return 0;
}

А действия почти стандартные.

  1. Спрашиваем у пользователя n.
  2. Проверяем n. Если n > SIZE (у меня это максимум для количества элементов массива), то выходим из программы.
  3. Заполняем массив с клавиатуры
  4. Выводим исходный массив
  5. Выводим измененный (для этого для каждого элемента вызываем функцию)

Вывод программы

Скачать исходный код программы (Visual Studio 2012)

Добавить комментарий