📄 数制转换问题.txt
字号:
一:
#include<stdio.h>
#include<math.h>
void main(){
double num10;
int k,t,b,i;
printf("jinzhi:");
scanf("%d",&k);
printf("weishu");
scanf("%d",&t);
int a[50];
for(i=0;i<t;i++)
scanf("%d",&a[i]);
num10=0;
for(i=0;i<t;i++)
{
num10=num10+a[i]*pow(k,t-1-i);
}
printf("%f",num10);
}
//进制转换(将十进制转换为R进制)
#include <stdio.h>
#include<stdlib.h>
#define size 50
int n=0;
typedef struct//定义栈结构
{
int elem[size];
int top;
}seqstack;
int b[size];
//初始化
void init(seqstack * s)
{
s->top=-1;
}
//进栈
void push(seqstack *s,int x)
{
if(s->top==size-1)
printf("栈已经满了\n");
else
{
s->top++;
s->elem[s->top]=x;
}
n=s->top+1;
}
//出栈
void take(seqstack *s)
{
if(s->top==-1)
printf("栈为空\n");
else
{
while(s->top!=-1)
{
if(s->elem[s->top]<10)
printf("%d",s->elem[s->top]);
else
printf("%c",s->elem[s->top]+55);//输出10-15对应的ABCDEF
s->top--;
}
printf("\n");
}
}
void main()
{
int a,t,c,i;
seqstack * s;
s=(seqstack*)malloc(sizeof(seqstack));
init(s);
printf("以下是进制转换程序若进行转化输入1否则输入0\n");
scanf("%d",&i);
while(i)
{
printf("请输入要转化的十进制数\n");
scanf("%d",&a);
printf("请输入您要转化为的进制\n");
scanf("%d",&t);
while(a!=0)
{
c=a%t;
a=a/t;
push(s,c);
}
printf("您将要把您输的十进制数转化为%d进制数\n",t);
printf("转化为的%d进制数为\n",t);
take(s);
printf("若要继续请输入1否则输入0\n");
scanf("%d",&i);
}
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
#include<stdio.h>
#include<stdlib.h>
typedef int DataType;
struct SeqStack{
int maxnum;
int t;
DataType *s;
};
typedef struct SeqStack * PSeqStack;
PSeqStack creatEmptyStack_seq(int n); /*创建一个空栈的函数的原形声明*/
int isEmptyStack_seq(PSeqStack pastack); /*检验是非为空的函数声明*/
void push_seq(PSeqStack pastack,DataType x); /*存数进栈的声明*/
void pop_seq(PSeqStack pastack); /*删除栈顶元素的声明*/
DataType top_seq(PSeqStack pastack); /*从栈顶开始取数的声明*/
int main() /*主函数*/
{
int N,R,i;
PSeqStack pastack;
pastack = creatEmptyStack_seq(20);
scanf("%d%d",&N,&R);
while(N){
push_seq(pastack,N%R);
N=N/R;
}
while(!isEmptyStack_seq(pastack)){
i=top_seq(pastack);
//if(i>=10) printf("%d",i);感觉if语句没有什么作用
printf("%d",i);
pop_seq(pastack);
}
getchar();
getchar();
}
//PSeqStack creatEmpty_seq(int m) /*创建一个空栈的函数*/
PSeqStack creatEmptyStack_seq(int m)
{
PSeqStack pastack =(PSeqStack)malloc(sizeof(struct SeqStack));
if(pastack!=NULL)
{
pastack->s=(DataType *)malloc(sizeof(DataType)* m);
//pastack->s=(DataType *)malloc(sizeof(DataType * m);
if(pastack)
{
pastack->maxnum=m;
pastack->t=-1;
return(pastack);
}
else
free(pastack);
}
return(NULL);
}
void push_seq(PSeqStack pastack,DataType x) /*存数进栈的函数*/
{
//if(pastack->t=maxnum-1)
if(pastack->t == pastack->maxnum-1)
printf("Over flow!\n");
else
{pastack->t=pastack->t+1;
pastack->s[pastack->t]=x;
}
}
int isEmptyStack_seq(PSeqStack pastack) /*检验是非为空的函数*/
{
return(pastack->t == -1);
}
void pop_seq(PSeqStack pastack) /*删除栈顶元素的函数*/
{
//if(pastack->t==-1);多了分号
if(pastack->t==-1)
printf("Underflow!\n");
//else (pastack->t=pastack->t-1);
else
pastack->t = pastack->t-1;
}
//void top_seq(PSeqStack pastack) /*从顶取数的函数*/
DataType top_seq(PSeqStack pastack)
{
//if(pastack->==-1)
if(pastack->t == -1)
printf("It is Empty!\n");
else return(pastack->s[pastack->t]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -