Advertisement
Guest User

Untitled

a guest
Jun 14th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. #define RADIX 3.14159265358979323
  5.  
  6. int main(int argc, char * argv[])
  7. {
  8.     if (argc != 2)
  9.     {
  10.         printf("Usage:\n");
  11.         printf(" pi decnum\n");
  12.     }
  13.     else
  14.     {
  15.         double src;
  16.         int max_deg, min_deg, cur_deg;
  17.  
  18.         src = 0.0;
  19.         sscanf(argv[1], "%lf", &src);
  20.  
  21.         max_deg = 1;
  22.         min_deg = -5;
  23.         while (pow(RADIX, (double)max_deg) < src) ++max_deg;
  24.  
  25.         for (cur_deg = max_deg - 1; cur_deg > min_deg; --cur_deg)
  26.         {
  27.             double d = pow(RADIX, cur_deg);
  28.             char digit = 0;
  29.  
  30.             while (src > d)
  31.             {
  32.                 ++digit;
  33.                 src -= d;
  34.             }
  35.  
  36.             printf("%d", digit);
  37.             if (cur_deg == 0) printf(".");
  38.         }
  39.     }
  40.     printf("\n");
  41.     return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement