Использование указателей для работы с массивами данных - C (СИ)

Узнай цену своей работы

Формулировка задачи:

С клавиатуры введено длинное беззнаковое целое число. Образовать массив из цифр этого числа. Затем сформировать и напечатать новое число с инверсным (обратным) порядком цифр.

Решение задачи: «Использование указателей для работы с массивами данных»

textual
Листинг программы
#include <stdio.h>
 
int main()
{
   #if UINT_MAX == UINT64_MAX
   char array[20] = {0};
   #else
   char array[10] = {0};
   #endif
 
   unsigned long digit;
   printf("unsigned long: ");
   scanf("%lu", &digit);
 
   char* pvalue = array;
   for (; digit; digit /= 10)
   {
      *pvalue = digit % 10;
      pvalue++;
   }
 
   char* tail = pvalue;
   pvalue = array;
   for (; pvalue < tail; ++pvalue)
   {
      printf("%d", *pvalue);
   }
 
   return 0;
}

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

В этом коде используется указатель для хранения итератора массива символов. Список действий:

  1. Включаем необходимые заголовочные файлы
  2. Объявляем переменную array типа char, которая является массивом символов. Присваиваем каждому элементу значение 0.
  3. Объявляем переменную digit типа unsigned long и считываем в неё число с помощью функции scanf.
  4. Объявляем переменную pvalue типа char* и инициализируем её адресом первого элемента массива array.
  5. Запускаем цикл, который будет выполняться до тех пор, пока digit не станет равным 0. В каждой итерации значение digit делится на 10, а остаток от деления записывается в текущий элемент массива. После записи значения, указатель pvalue увеличивается на 1.
  6. Объявляем переменную tail типа char* и инициализируем её адресом последнего элемента массива array.
  7. Смещаем указатель pvalue на начало массива.
  8. Запускаем цикл, который будет выполняться до тех пор, пока pvalue не станет меньше tail. В каждой итерации в консоль выводится значение, хранящееся в текущем элементе массива.
  9. Завершаем программу и возвращаем 0.

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


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

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

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