Переписать код с использованием указателей - C (СИ) (149109)
Формулировка задачи:
Есть код на C,надо заменить на указатели.
#include <stdio.h> #include <stdlib.h> #include <locale.h> int prov(int a) { int d = 0; while(a != 0) { d = d * 10 +a%10; a/=10; } return d; } int main() { setlocale( LC_ALL,"Russian" ); printf ("Введите число ,которое надо проверить на симметричность.\n"); int n,i; scanf("%d", &n); int r[3]; printf("%s\n", (prov(n) == n) ? "Это симметрично число" : "Это не симметрично число "); for(i = 0; i < 3; i++) { r[i] = n % 10; printf("%d", r[i]); n/=10; } }
Решение задачи: «Переписать код с использованием указателей»
textual
Листинг программы
for(int *ptr= &r[0]; ptr < &r[3]; ptr++) { *ptr= n % 10; printf("%d ", *ptr); }
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- Указатель
ptr
инициализируется адресом первого элемента массиваr
. - В цикле выполняется условие, что
ptr
меньше адреса последнего элемента массиваr
. - Внутри цикла в каждый элемент массива
r
, на который указываетptr
, записывается остаток от деления числаn
на 10. - После каждого действия в цикле выводится на экран значение элемента массива
r
, на который указываетptr
, с помощью функцииprintf
. - Значение
n
не используется в данном коде. - Каждое действие в цикле выполняется до тех пор, пока
ptr
не станет адресом последнего элемента массиваr
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д