Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
26.05.2014
Размер:
2.19 Кб
Скачать
#include<string.h>
#include<math.h>
#include<stdio.h>
#include<conio.h>

void main()
{
 int i,n;
 int rezO,rez10=0;
 int ss1,ss2;
 char numb[10],rez[10],rep;
 int buf[10];
 do {
  clrscr();
  printf("Input ss1: ");
  scanf("%d", &ss1);
  printf("Input number: ");
  scanf("%s", &numb);
  printf("Input ss2: ");
  scanf("%d", &ss2);
  i=n=strlen(numb);
  while(i) {
   --i;
   switch(numb[i]) {
     case '0' : buf[i]=0;  break;
     case '1' : buf[i]=1;  break;
     case '2' : buf[i]=2;  break;
     case '3' : buf[i]=3;  break;
     case '4' : buf[i]=4;  break;
     case '5' : buf[i]=5;  break;
     case '6' : buf[i]=6;  break;
     case '7' : buf[i]=7;  break;
     case '8' : buf[i]=8;  break;
     case '9' : buf[i]=9;  break;
     case 'A' : buf[i]=10; break;
     case 'B' : buf[i]=11; break;
     case 'C' : buf[i]=12; break;
     case 'D' : buf[i]=13; break;
     case 'E' : buf[i]=14; break;
     case 'F' : buf[i]=15; break;
     case 'a' : buf[i]=10; break;
     case 'b' : buf[i]=11; break;
     case 'c' : buf[i]=12; break;
     case 'd' : buf[i]=13; break;
     case 'e' : buf[i]=14; break;
     case 'f' : buf[i]=15; break;
   }
  }
  for(i=0,n--;i<=n;i++)           // Perevod 4isla iz ishodnoj sistemy v
   rez10+=buf[i]*pow(ss1,(n-i));  // desyati4nuyu
  n=0; i=0;
  while(rez10) {
   n++;
   rezO=rez10%ss2;                // perevod v ss2
   rez10=rez10/ss2;
   switch(rezO) {
     case  0 : rez[i]='0'; break;
     case  1 : rez[i]='1'; break;
     case  2 : rez[i]='2'; break;
     case  3 : rez[i]='3'; break;
     case  4 : rez[i]='4'; break;
     case  5 : rez[i]='5'; break;
     case  6 : rez[i]='6'; break;
     case  7 : rez[i]='7'; break;
     case  8 : rez[i]='8'; break;
     case  9 : rez[i]='9'; break;
     case 10 : rez[i]='A'; break;
     case 11 : rez[i]='B'; break;
     case 12 : rez[i]='C'; break;
     case 13 : rez[i]='D'; break;
     case 14 : rez[i]='E'; break;
     case 15 : rez[i]='F'; break;
   }
   i++;
  }
  for(i--;i>=0;i--)
   printf("%c", rez[i]);
  printf("\nDo you want to repeat Y/N: ");
  scanf("%s", &rep);
 }
 while ((rep=='Y')||(rep=='y'));


}
Соседние файлы в папке лабы по Осям