Advertisement
DanikKUL

Перевод из 10 в другую систему счисления

Oct 10th, 2021
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.17 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. //Перевод в любую систему счисления
  4.  
  5. int main()
  6. {
  7.     int ss;
  8.     char ms[20];
  9.     char znak='+';
  10.     int t,i,num1,k1=10,k2=11;
  11.     double num;
  12.     printf("Enter number\n");
  13.     scanf("%lf",&num);
  14.     printf("Enter accuracy\n");
  15.     scanf("%d",&t);
  16.     if(t<=0)
  17.     {
  18.         printf("Incorrect accuracy! Try again.\n");
  19.         main();
  20.     }
  21.     printf("Enter the base the scale of system\n");
  22.     scanf("%d",&ss);
  23.     if(ss<=1)
  24.     {
  25.         printf("Incorrect system! Try again.\n");
  26.         main();
  27.     }
  28.  
  29.     if (num < 0) {
  30.         znak = '-', num *= -1;
  31.     }
  32.     num1=num;
  33.     num-=num1;
  34.     while(num1>=ss)
  35.     {
  36.         i=num1%ss;
  37.         num1/=ss;
  38.         if (i > 9) {
  39.             ms[k1--] = i - 10 + 'A';
  40.         } else {
  41.             ms[k1--] = i + '0';
  42.         }
  43.     }
  44.     if (num1 > 9) {
  45.         ms[k1--] = num1 - 10 + 'A';
  46.     } else {
  47.         ms[k1--] = num1 + '0';
  48.     }
  49.     ms[k1]=znak;
  50.     ms[k2++]='.';
  51.     while(num!=0 && k2-11<=t)
  52.     { num=(num*=ss,i=num,num-=i);
  53.         ms[k2++]=(i>9) ? i-10+'a': i+'0'; }
  54.     for(i=k1;i<k2;i++)
  55.         printf("%c",ms[i]);
  56.     return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement