您的位置:首页 > 其它

十进制转换为其他进制

2010-05-05 12:57 274 查看
#define Maxsize 20

#include <stdio.h>

typedef int DataType ;

typedef struct{

DataType data[Maxsize];

int top;

}SeqStack;

void InitStack(SeqStack *S){

S->top=0;

}

int StackEmpty(SeqStack *S){

if(S->top==0)return 1;

else

return 0;

}

void Push(SeqStack *S,DataType x){

if(S->top==Maxsize-1)

printf("Stack overflow");

else S->data[(S->top)++]=x;

}

DataType Pop(SeqStack *S) {

if(StackEmpty(S))

printf("Stackunderfloe");

else return S->data[--(S->top)];

}

void conversion(int n,int d);

void main() {

int n,d;

char ch; printf("请先输入y:/n");

scanf("/n%c",&ch);

while(ch=='y') {

printf("请输入一个十进制整数:/n");

scanf("%d",&n);

printf("请输入所要转换的进制数:/n");

scanf("%d",&d);

conversion(n,d);

printf("输入y重新输入,输入x结束操作:/n");

scanf("/n%c",&ch);

}

}

void conversion(int n,int d) {

DataType k;

SeqStack L,*S;

S=&L;

InitStack(S);

while(n) {

Push(S,n%d);

n=n/d;

}

printf("转换之后的数字为:/n");

while(!StackEmpty(S)) {

k=Pop(S);

switch(k) {

case 10:printf("%c",'a');

break;

case 11:printf("%c",'b');

break;

case 12:printf("%c",'c');

break;

case 13:printf("%c",'d');

break;

case 14:printf("%c",'e');

break;

case 15:printf("%c",'f');

break;

default:printf("%d",k);

}

}

printf("/n");

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: