利⽤栈实现任意进制转换代码(C语⾔)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define Maxsize 100
using namespace std;
//顺序栈
typedef struct SqStack{
int data[Maxsize];
int top;
}SqStack;
//初始化
html代码转链接int Init_Sqstack(SqStack &S)
{
}
//进栈
bool push_SqStack(SqStack &S,int x)
{
p==Maxsize-1)
return false;//栈满
S.data[++S.top]=x;
return true;
}
//出栈
bool pop_SqStack(SqStack &S,int &x)
{
p==-1)
return false;
x=S.p];
return true;
}
void show_SqStack(SqStack S)
{
for(int p;i>=0;i--)
{
printf("%d ",S.data[i]);
}
}
int char_to_num(char *a,int x)
{
int n;
int c=0;
int b[100];
n=strlen(a);
int sum=0;
//printf("%d",n);
for(int i=0;i<n;i++)
{
if(a[i]>='0'&&a[i]<='9')
b[i]=(a[i]-'0');
else
b[i]=(a[i]-'A'+10);
}
while(n)
{
n--;
sum+=b[c++]*pow(x,n);
//printf("%d\n",sum);
}
}
return sum;
}
int main()
{
SqStack S;
Init_Sqstack(S);
printf("请输⼊想要转化数的进制:"); int i;
scanf("%d",&i);
printf("\n请输⼊想转化的进制:"); int j;
scanf("%d",&j);
printf("\n请输⼊想要转化的数:");
char s[100];
scanf("%s", s);
/
/printf(s);/*
int m,x;
m=char_to_num(s,i);
while(m)
{
push_SqStack(S,m%j);
m=m/j;
}
show_SqStack(S);
//cout << "Hello world!" << endl;
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论