Перевернуть числа в массиве - C (СИ)
Формулировка задачи:
У самого не получилось, просто как перевернуть число ззнаю, а как перевернуть числа в массиве - нет. Не получается, много перепробовал. Код на Си нужен. Нужно получить из например 123, 456 -> 321, 654
#include <stdio.h> #include <locale.h> int main() { setlocale(0, ""); int size = 0; int n,i; printf("Введите размер масива\n"); scanf("%d", &size); int a[size]; for (int i = 0; i < size; i++) { scanf("%d",&a[i]); } int b[n]; for (i=0; i<size;i++) { if(a[i]>0) { b[i] = 10*b[i] + (a[i] % 10); a[i]/=10; } printf("( %d)",a[i]); } for (int i=0; i<size; i++) { printf("( %d)",a[i]); } }
Решение задачи: «Перевернуть числа в массиве»
textual
Листинг программы
int replace(int a) { int b = 0; while (a) { b = b*10 + a%10; a/=10; } return b; } //... for (int i=0; i<size; i++) a[i] = replace(a[i]);
Объяснение кода листинга программы
- В данном коде функция
replace
принимает целое числоa
и возвращает перевернутое число, которое представляет собой сумму цифр исходного числа. - Внутри функции
replace
объявлена переменнаяb
типаint
, которая инициализируется значением 0 и используется для подсчета суммы цифр. - Затем в цикле
while
происходит обработка каждой цифры числаa
. - В каждой итерации цикла значение переменной
b
увеличивается на произведение 10 на текущую цифру и на остаток от деленияa
на 10. - Значение
a
делится на 10, чтобы убрать последнюю цифру и перейти к следующей. - Цикл продолжается, пока значение
a
не станет равным 0. - В конце функции
replace
возвращается значение переменнойb
, которое представляет собой перевернутое число. - За пределами функции
replace
объявлен массивa
и инициализируется значениями, которые необходимо перевернуть. - В цикле
for
происходит обращение к каждому элементу массиваa
и его замена на результат вызова функцииreplace
. - Результатом работы данного кода будет перевернутый массив
a
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д