原始部落六進制

假設有一個原始部落,使用一種特殊的數字系統,該數字系統中使用六進制,表示數字的符號及其含義如下:

%表示0       )表示1      ~ 表示2       @ 表示3        ? 表示4

\ 表示5       $ 表示-1

例如:)@% 爲   1×62+3×6+0=54

      $~~ 爲  -1×62+2×6+2=-22

編寫一個程序,輸入一個原始部落數字,輸出對應的十進制數


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 100
void StartPrint();
int CheckChoose(int Choose);
void SwithNumber(char IniArry[],int NumArry[]);
void ChangeToNumber(int NumArry[],int n);
void PrintChoose();
void ActiveFun();
int main(void)
{
int Choose=1;
while(CheckChoose(Choose))
{
StartPrint();
ActiveFun();
PrintChoose();
scanf("%d",&Choose);
}
return 0;
}
///////////////////////////////////////////
///開始時輸出的信息
///////////////////////////////////////////
void StartPrint()
{
system("cls");
printf("*****************原始部落數字轉換*****************\n\n\n");
printf("****************請輸入原始部落數字****************\n");
printf("原始部落數字是由 %% \\ ? @ $ ) \~ 組成\n");
return;
}
///////////////////////////////////////////
///數字轉換
///////////////////////////////////////////
void SwithNumber(char IniArry[],int NumArry[])
{
int i;
for(i=0;i<strlen(IniArry);++i)
{
switch ((int) IniArry[i])
{
case 37:NumArry[i] = 0; break;
case 41:NumArry[i] = 1; break;
case 126:NumArry[i] = 2; break;
case 64:NumArry[i] = 3; break;
case 63:NumArry[i] = 4; break;
case 92:NumArry[i] = 5; break;
case 36:NumArry[i] = -1;break;
}
}
return;
}
///////////////////////////////////////////
///數字轉換
///////////////////////////////////////////
void ChangeToNumber(int NumArry[],int n)
{
int i;
long Number=0;
for(i=0;i<n-1;i++)
{
Number+=NumArry[i];
Number*=6;
}
printf("轉換後的數字是:\n");
printf("%ld\n",Number);
}
///////////////////////////////////////////
///執行函數
///////////////////////////////////////////
void ActiveFun()
{
static char IniArry[N];
static int NumArry[N];
int n;
scanf("%s",&IniArry);
n=strlen(IniArry);
SwithNumber(IniArry,NumArry);
ChangeToNumber(NumArry,n);
}
///////////////////////////////////////////
///輸出選擇
///////////////////////////////////////////
void PrintChoose()
{
printf("\n\n\n");
printf("是否還求其他的數?\n");
printf("1:是\n");
printf("0:否\n");
}
///////////////////////////////////////////
///判斷選擇
///////////////////////////////////////////
int CheckChoose(int Choose)
{
if(Choose!=1)
return 0;
else return 1;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章