三种不同方法解决数制转换问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
}//数制转换 void main() {
int n=37; int r=4; printf("十进制数%2d 转换为%d 进制数。\n",n,r); conversion(n,r);
} /////////////////方法三 #include<stdio.h> #include <math.h> #define maxsize 5 typedef struct {
}//空栈的判断 int push_seqstack(seqstack *s,int x) {
if(s->top==maxsize-1) return 0;
else {
(s)->data[++(s)->top]=x; return (1); } }//进栈 int pop_seqstack(seqstack *s,int *x)
/////////////////方法一 #include<stdio.h> #define S 10 void zh(int N,int r) {
int L[S],top; int x; top=-1; while(N) {
L[++top]=N%r; N=N/r; while(top!=-1) {
}
x=L[top--]; printf("%d",x); } } printf("\n"); } main() { int w,z; scanf("%d%d",&w,&z); zh(w,z); } ///////////////////////////方法二 #include<stdio.h> #include <math.h> #define maxsize 50 void conversion(int n,int r) { int ss[maxsize]={0}; int i=0; int j; while(n) { ss[i]=(n%r); i++; n=n/r; } for(j=0;j<i;j++) { printf("%d",ss[j]);
{ if(empty_seqstack(s)) return 0; else { *x=s->data[s->top--]; return 1; }
}/ຫໍສະໝຸດ Baidu出栈
void conversion(int n,int r) {
seqstack L; init_seqstack(&L); while(n)
{ push_seqstack(&L,n%r); n=n/r;
int data[maxsize]; int top;
}seqstack; void init_seqstack(seqstack *s) {
s->top=-1; }//栈的初始化 int empty_seqstack(seqstack *s) {
if(s->top==-1) return 1;
else return 0;
} while(!(empty_seqstack(&L))) { int x;
pop_seqstack(&L,&x); printf("%2d ",x); } printf("\n"); }//数制转换 void main() { int n=37; int r=4; printf("十进制数%d 转换为%d 进制数:",n,r); conversion(n,r);