Advertisement
add1ctus

Shifting left

Nov 23rd, 2014
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.03 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void shift(int n);
  4. int * flip(int digits[], int size);
  5.  
  6. int main()
  7. {
  8.     int n,i,number;
  9.     scanf("%d",&n);
  10.     for(i=0;i<n;++i)
  11.     {
  12.         scanf("%d",&number);
  13.         shift(number);
  14.     }
  15.     return 0;
  16. }
  17.  
  18. int * flip(int digits[], int size)
  19. {
  20.     int i,swapper;
  21.     for(i=0;i<size/2;i++)
  22.     {
  23.         swapper=digits[i];
  24.         digits[i]=digits[size-1-i];
  25.         digits[size-1-i]=swapper;
  26.     }
  27.     return digits;
  28. }
  29.  
  30. void shift(int n)
  31. {
  32.     int digits[10],i,counter,temp=n;
  33.  
  34.     for(counter=0;counter<10 && temp>0;counter++)
  35.     {
  36.         digits[counter]=temp%10;
  37.         temp/=10;
  38.     }
  39.  
  40.     if(counter<=3)
  41.     {
  42.         printf("%d\n",n);
  43.         return;
  44.     }
  45.  
  46.     int printednumber=0;
  47.     flip(digits,counter);
  48.     if(digits[3]!=0)
  49.         printf("%d",digits[3]);
  50.     for(i=4%counter;i!=3;i=(i+1)%counter)
  51.         if(printednumber || digits[i]!=0)
  52.         {
  53.             printednumber=1;
  54.             printf("%d",digits[i]);
  55.         }
  56.     printf("\n");
  57.  
  58.     return;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement