Перевернуть числа в массиве - 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.