[c] lab1.c

Viewer

  1. #include <stdio.h>
  2.  
  3. int solve(int n) {
  4.     
  5.     int dp = 0, d = 1, p;
  6.     
  7.     while (>= 10 || n <= -10) {    //Рассматриваем два случая, чтобы обрабатывались
  8.                                      //как положительные, так и отрицательные числа
  9.         p = n % 100;
  10.         p = (% 10) * 10 + p / 10;            //В переменную p будет перезаписываться пару
  11.         dp += p * d;                           //с обратным порядком
  12.         d *= 100;                              //В dp записываем нашу пару и добавляем ей
  13.                                                //соответствующую разрядность (d)
  14.         n /= 100;                              //Убираем пару, можно переходить к следующей
  15.         
  16.     }
  17.     
  18.     return dp + n * d;                          //Если число содержит нечетное кол-во цифр, то 
  19.                                                 //перву цифру (n*d) надо возвращать, чтобы при выводе
  20. }                                               //она не "исчезла"
  21.  
  22. int main() {
  23.     
  24.      int n;
  25.      int max = 2147483547;
  26.      
  27.      printf("Пожалуйста, введите n: ");
  28.      scanf("%d", &n);
  29.      
  30.      if (> max || n < (-1 * max - 1)) {
  31.          
  32.          printf("Число выходит за диапазоны типа int.\n");
  33.          
  34.      } else {
  35.          
  36.          printf("Обработанное число: %d", solve(n));
  37.          
  38.      }
  39.      
  40.      return 0;
  41.     
  42. }

Editor

You can edit this paste and save as new: