博客
关于我
例5006 计算器设计
阅读量:267 次
发布时间:2019-03-01

本文共 2154 字,大约阅读时间需要 7 分钟。

例5006 计算器设计

Time Limit: 1000/1000MS (C++/Others) Memory Limit: 65536/65536KB (C++/Others)

Total Submissions: 62 Accepted Submissions: 44
Problem Description
Really Neato计算器公司最近邀请你的团队为他们设计一款超级Neato一代计算器。作为计算机科学家,你建议该计算器能够在各种进制之间进行转换。他们认为这是一个很好的想法,并要求你的团队先给出实现进制转换的算法原型。公司经理告诉你,该计算器应该具有以下一些特征:
(1)可以显示7位;
(2)按键除了数字0到9外,还包括大写字母A到F;
(3)支持2~16进制。

Input

输入文件中的每行为一个进制转换,包括3个数,第1个数是原进制下的一个整数,第2个数就是原进制,第3个数是转换后的进制。这3个数的两边可能有一个或多个空格。输入数据一直到文件结尾。

Output

实现所有的进制转换,转换后的数右对齐到7位显示。如果转换后的数的位数太多,超过7位,则输出“ERROR”,也是右对齐到。

解题思路:

  #include 
#include
long b2ten(char *x,int b); int main(){ char srcnum[10],destnum[10],temp[10]; char error[10] = "ERROR"; int src,dest,j; long num; while(~scanf("%s %d %d",srcnum,&src,&dest)){ num = b2ten(srcnum,src); if(dest==10){ if(num>9999999) printf("%7s\n",error); else printf("%7ld\n",num); } else{ j=0; while(num){ if(num%dest<10) destnum[j++] = num%dest + '0'; else{ switch(num%dest){ case 10:destnum[j++] = 'A';break; case 11:destnum[j++] = 'B';break; case 12:destnum[j++] = 'C';break; case 13:destnum[j++] = 'D';break; case 14:destnum[j++] = 'E';break; case 15:destnum[j++] = 'F';break; } } num /= dest; } destnum[j] = '\0'; if(strlen(destnum)>7){ printf("%7s\n",error); } else{ int i=0; for(int k=j-1;k>=0;k--){ temp[i++] = destnum[k]; } temp[i] = '\0'; printf("%7s\n",temp); } } } return 0; } long b2ten(char *x,int b){ int ret=0; for(int i=0;i

这段代码实现了一个支持不同进制转换的计算器。程序从标准输入读取转换请求,逐个处理每个请求,进行数字转换并输出结果。代码结构清晰,主要包含以下几个部分:

  • 头部包含必要的库和头文件
  • 主函数实现进制转换的逻辑
  • 辅助函数b2ten用于将源进制数转换为十进制数
  • 输入处理与输出格式化
  • 错误处理机制
  • 程序支持进制转换之间的切换,输入数据经过转换后会右对齐到7位显示,超过7位则输出"ERROR"。代码注重处理细节,如字符范围判断和结果反转确保显示正确。

    转载地址:http://jcsa.baihongyu.com/

    你可能感兴趣的文章
    python利用pyshark监听网卡来抓包其中pyshark中摸索的一些可用参数
    查看>>
    python利用excel分析过杀漏失
    查看>>
    python判断汉字数目
    查看>>
    python判断文件是空的,如果是空的,就删除
    查看>>
    python判断密码是否正确_python密码判断是否符合要求的方法
    查看>>
    python判断字符串包含中文_Python 判断字符串是否包含中文
    查看>>
    python删除第一行_Python 乱码指北:一行删掉根目录
    查看>>
    Python删除列表元素的三种方法
    查看>>
    python初步学习-python数据类型-集合(set)
    查看>>
    python列表生成字典_Python中将字典转换为列表的方法
    查看>>
    python列表对应元素合并为列表及判断一个列表是几维
    查看>>
    python+flask计算机毕业设计骨科门诊患者档案管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体测管理系统的设计与实现(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体育赛事系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校危化品管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校校园线上跳蚤市场的系统设计(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校疫情防控管理平台(程序+开题+论文)
    查看>>
    Python+Jenkins+Allure Report接口自动化测试持续集成
    查看>>
    python+locust电商全流程性能测试
    查看>>
    Python函数运行的可执行文件的终端输出如何以一般方式静音?
    查看>>