Для каждого числа вывести новое число, которое получится после записи цифр числа в обратном порядке - C (СИ)
Формулировка задачи:
Добрый вечер ,помогите пожалуйста программу написать,я не могу понять даже с чего начать , думаю что через массив нужно, не могу реализовать : Вводится последовательность из N целых чисел.Для каждого числа последовательности вывести новое число, которое получится после записи цифр числа в обратном порядке(функцию оформить определение нового числа для заданного).
Решение задачи: «Для каждого числа вывести новое число, которое получится после записи цифр числа в обратном порядке»
textual
Листинг программы
- /*
- ============================================================================
- Name : c_reverse_number.c
- Author : UranFlex
- Version : 0.1 alpha
- Copyright : UranFlex 2013
- License : GNU GPL
- Description : Вводится последовательность из N целых чисел.Для каждого числа последовательности вывести новое число,
- * которое получится после записи цифр числа в обратном порядке.
- * Реализовать функцию, которая возвращает перевернутое число.
- * C, Ansi-style
- ============================================================================
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdio_ext.h>
- #define N 4 // количество вводимых значений
- // функция переворачивает число, вверх ногами :-)
- int ReverseNumber( int value );
- int main( void ) {
- int arr[ N ]; // массив для хранения всех вводимых значений
- printf( "%s %d\n", "Введите целочисленные значения в количестве", N ); // запрашиваем у пользователя данные значения
- // считываем их в цикле
- size_t i;
- for ( i = 0; i < N; ++i )
- scanf( "%d", &arr[ i ] );
- __fpurge( stdin ); // очищаем stdin на всякий случай
- // в цикле переворачиваем каждое введеное значение и переворачиваем его
- for ( i = 0; i < N; ++i )
- printf( "%d ", ReverseNumber( arr[ i ] ) );
- puts( "" );
- return EXIT_SUCCESS;
- }
- int ReverseNumber( int value ) {
- int result = 0;
- while ( value ) {
- result = result * 10 + value % 10;
- value /= 10;
- }
- return result;
- }
Объяснение кода листинга программы
- Объединение всех введенных чисел в массив arr[].
- Запрос у пользователя ввода N целых чисел.
- Считывание N целых чисел в массив arr[] с помощью функции scanf().
- Очистка входного потока данных (stdin) с помощью функции __fpurge().
- Вызов функции ReverseNumber() для каждого числа в массиве arr[], запись результата в stdout.
- Возвращение функцией main() значения EXIT_SUCCESS.
- Внутри функции ReverseNumber() инициализация переменной result значением 0.
- В цикле while считывается каждая цифра числа, начиная с самой правой, и добавляется в конец результата.
- Каждое число делится на 10, чтобы получить следующую цифру.
- Возвращение функцией ReverseNumber() перевернутого числа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д