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

Объяснение кода листинга программы

  1. Объединение всех введенных чисел в массив arr[].
  2. Запрос у пользователя ввода N целых чисел.
  3. Считывание N целых чисел в массив arr[] с помощью функции scanf().
  4. Очистка входного потока данных (stdin) с помощью функции __fpurge().
  5. Вызов функции ReverseNumber() для каждого числа в массиве arr[], запись результата в stdout.
  6. Возвращение функцией main() значения EXIT_SUCCESS.
  7. Внутри функции ReverseNumber() инициализация переменной result значением 0.
  8. В цикле while считывается каждая цифра числа, начиная с самой правой, и добавляется в конец результата.
  9. Каждое число делится на 10, чтобы получить следующую цифру.
  10. Возвращение функцией ReverseNumber() перевернутого числа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы