Использование указателей для работы с массивами данных - 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; }
Объяснение кода листинга программы
В этом коде используется указатель для хранения итератора массива символов. Список действий:
- Включаем необходимые заголовочные файлы
- Объявляем переменную
array
типа char, которая является массивом символов. Присваиваем каждому элементу значение 0. - Объявляем переменную
digit
типа unsigned long и считываем в неё число с помощью функции scanf. - Объявляем переменную
pvalue
типа char* и инициализируем её адресом первого элемента массиваarray
. - Запускаем цикл, который будет выполняться до тех пор, пока
digit
не станет равным 0. В каждой итерации значениеdigit
делится на 10, а остаток от деления записывается в текущий элемент массива. После записи значения, указательpvalue
увеличивается на 1. - Объявляем переменную
tail
типа char* и инициализируем её адресом последнего элемента массиваarray
. - Смещаем указатель
pvalue
на начало массива. - Запускаем цикл, который будет выполняться до тех пор, пока
pvalue
не станет меньшеtail
. В каждой итерации в консоль выводится значение, хранящееся в текущем элементе массива. - Завершаем программу и возвращаем 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д