#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include <stdio.h>
int
main()
{
int
taban,sonuc,deger[50];
char
sayi[50];
char
karakterler[17]=
"0123456789ABCDEF"
;
int
i,j;
int
counter=0,kacust=50;
int
toplam=0,degeral,ust;
system
(
"color 3b"
);
basadon:
counter=0;
kacust=50;
toplam=0;
printf
(
"istediginiz tabandaki istediginiz sayiyi 10 luk tabana cevirir.\n\n"
);
printf
(
"hangi tabandan ceviri yapmak istiyorsunuz:"
);
tabanadon:
scanf
(
"%d"
,&taban);
if
(taban>16 || taban<=0)
{
printf
(
"\ntaban sayisi 16 dan buyuk olamaz lutfen tekrar girin:"
);
goto
tabanadon;
}
if
(taban>10)
{
printf
(
"\n10 veya daha buyuk bir taban kullandiniz.\n"
);
for
(i=10;i<taban;i++)
{
printf
(
"%d=%c "
,i,karakterler[i]);
}
printf
(
"\nyukaridaki harfleride kullanabilirsiniz.\n"
);
}
printf
(
"sayiyi girin:"
);
tekrargir:
for
(i=0;i<50;i++)
{
deger[i] = (-1);
sayi[i] = (0);
}
scanf
(
"%s"
,&(sayi));
for
(i=0;i<50;i++)
{
if
(sayi[i]==97)
sayi[i] =
'A'
;
if
(sayi[i]==98)
sayi[i] =
'B'
;
if
(sayi[i]==99)
sayi[i] =
'C'
;
if
(sayi[i]==100)
sayi[i] =
'D'
;
if
(sayi[i]==101)
sayi[i] =
'E'
;
if
(sayi[i]==102)
sayi[i] =
'F'
;
}
for
(i=0;i<50;i++)
{
if
((sayi[i]>=48 && sayi[i]<=57) || (sayi[i]>=65 && sayi[i]<=70))
{
if
(sayi[i]==48)
deger[i] = 0;
if
(sayi[i]==49)
deger[i] = 1;
if
(sayi[i]==50)
deger[i] = 2;
if
(sayi[i]==51)
deger[i] = 3;
if
(sayi[i]==52)
deger[i] = 4;
if
(sayi[i]==53)
deger[i] = 5;
if
(sayi[i]==54)
deger[i] = 6;
if
(sayi[i]==55)
deger[i] = 7;
if
(sayi[i]==56)
deger[i] = 8;
if
(sayi[i]==57)
deger[i] = 9;
if
(sayi[i]==65)
deger[i] = 10;
if
(sayi[i]==66)
deger[i] = 11;
if
(sayi[i]==67)
deger[i] = 12;
if
(sayi[i]==68)
deger[i] = 13;
if
(sayi[i]==69)
deger[i] = 14;
if
(sayi[i]==70)
deger[i] = 15;
}
}
for
(i=0;i<50;i++)
{
if
(deger[i]==(-1))
continue
;
if
(deger[i]>=taban || deger[i]<(-1))
{
for
(j=0;j<50;j++)
deger[j] = -1;
printf
(
"\ngirmis oldugunuz sayilar icerisinde o tabanda tanimli olmayan sayi var."
);
printf
(
"\nlutfen tekrar giriniz:"
);
goto
tekrargir;
}
}
for
(i=0;i<50;i++)
{
if
(deger[i]==(-1))
counter++;
}
kacust -= counter;
for
(i=0;i<50;i++)
{
if
(deger[i]!=(-1))
{
ust =
pow
(taban,(kacust-(i+1)));
degeral = deger[i]*ust;
toplam += degeral;
}
else
break
;
}
printf
(
"\n(%s)%d sayisinin 10 luk sisteme donusmus hali: %d"
,sayi,taban,toplam);
printf
(
"\n\n\nBasa Donmek Icin Bir Tusa Basin...."
);
getch();
system
(
"CLS"
);
goto
basadon;
return
0;
}
Hiç yorum yok:
Yorum Gönder