您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页《C数据结构》数制转换实验报告

《C数据结构》数制转换实验报告

来源:华佗健康网
数制转换

实验目的:

使用堆栈的存储结构实现数制转换,如10进制->2进制等 实验思路:

1、 写出堆栈的相关操作函数,如:

创建【int InitStack( SqStack *S )】、 压入【int Push(SqStack *S,int e)】、 弹出【int Pop(SqStack *S,int *e)】、 销毁【void DestroyStack(SqStack *S)】、

判断是否为空【int StackEmpty(SqStack *S)】等。

2、 堆栈的各操作函数完成后编写功能函数——数制转换【void

changeNumber(int *num,int to)】。

3、 数制转换函数之后编写主函数,使用上述函数实现数制转换的功能

核心代码:

1、 数制转换函数:

void changeNumber(int *num,int to){ int result[100],yu,e,m,i=0,j=0; //result[]是转换后的结果,yu是取余的结果 SqStack S; for(m=0;m<100;m++){ result[m]='#'; } InitStack(&S); while(*num!=0){ yu=*num%to; Push(&S,yu); *num=*num/to; } while(!StackEmpty(&S)){ Pop(&S,&e); result[i]=e; i++; } while(1){ printf(\"%d\ j++; if(result[j]=='#'){ printf(\"\\n\"); break; } } DestroyStack(&S);

}

2、 主函数: int main(){ int *p,num,to; int ok; while(1){ printf(\"您想转换的数字是:\"); scanf(\"%d\ printf(\"转换成多少进制:\"); scanf(\"%d\ p=# changeNumber(p,to); while(1){ printf(\"继续请按1,退出请按0...\"); scanf(\"%d\ if(ok!=0 && ok!=1){ printf(\"抱歉,您的输入有误,\"); }else if(ok==0 || ok==1){ break; } } if(ok==0){ break; } }

system(\"pause\"); return 1; }

功能演示:

1、 运行执行文件,进入dos窗口后可见提示:“您想转换的数字是:” 2、 输入:“1000”,回车后可见提示:“转换成多少进制:” 3、 输入:“6”,回车,得到结果:“4344”,又见提示:“继续请按1,退出请按0...”

4、 输入0退出

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务