⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 数制转换问题.txt

📁 用C++编写的关于转换数字进制的转换程序,可以实现2进制向任意进制转换
💻 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 + -