Для каждого числа вывести новое число, которое получится после записи цифр числа в обратном порядке - 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() перевернутого числа.