如何接收并输出超出最大数字范围的数?
来源:互联网 发布:帮忙起个淘宝店铺名 编辑:程序博客网 时间:2024/05/14 23:21
这是一个PAT乙级考试试题,原题目是
这个题中最后求出所有位之和并用汉语拼音输出并不难,问题在于如何把超出范围的数字读取并处理,当时考虑了很久,尝试字符串等等一系列方法但后来的计算等一系列问题都感觉一团糟。
当天先把这个题放了一放,第二天突然想到用字符数组的方法,并成功解决了,在此记下。
代码如下:
#include<stdio.h>#include<math.h>void numprint(int);int main(void){int cnt=0,sum=0,digitnum=0; int num,sum1,digit,x; char n[110]; scanf("%s",&n); while (n[cnt]){ num=n[cnt]-48;sum+=num;cnt++; } sum1=sum; while (sum1){ digitnum++; sum1/=10; } while(digitnum){ digit=sum/pow(10,digitnum-1); numprint(digit); x=pow(10,digitnum-1); sum=sum%x; digitnum--; if(digitnum){ printf(" "); } }}void numprint(int num){ switch (num){ case 0: printf("ling");break; case 1: printf("yi");break; case 2: printf("er");break; case 3: printf("san");break; case 4: printf("si");break; case 5: printf("wu");break; case 6: printf("liu");break; case 7: printf("qi");break; case 8: printf("ba");break; case 9: printf("jiu");break;}}利用ASCII码中数字是有序排列的特性,将字符数组中每一位以十进制处理并减去ASCII码表中‘0’的数值即为当前位置上的那个数字。
0 0
- 如何接收并输出超出最大数字范围的数?
- 超出数据类型范围的数的加法
- 输入5个数字,输出最大的数
- Html5 Localstorage超出最大范围
- 超出打开游标的最大数异常
- 超出最大连接数的解决方法
- 超出最大终端连接数的解决办法
- 超出打开游标的最大数 问题
- 远程桌面超出最大连接数的解决
- oracle 超出打开游标的最大数
- Java-超出打开游标的最大数
- 超出打开游标的最大数
- 输入三个数,并找出最大的输出
- 修改VGA输出电脑屏超出显示范围的问题
- 最大数的输出
- 逆序输出数字并求最大最小值
- 超出最大会话数和Ora-00020超出最大进程数错误的解决方法
- 超出范围的函数
- 小博老师经验分享 ——如何选择一门开发语言
- Visual Studio 2015 - Windows XP (v140_xp) 编译工具 ucrtbased.dll缺失
- bash默认的组合键
- http://blog.csdn.net/qq61394323/article/details/26091875
- RACSignal的变换操作的底层实现(3)
- 如何接收并输出超出最大数字范围的数?
- 在vim中配置C++开发环境
- Builder模式有感,类似viewHolder的构造,方便外部类的参数设置
- 前端开发工具sublime text 3
- 数据库基础知识
- 清除浮动的方法
- js获取select标签选中的值
- Universal Image Loader 学习笔记-基本使用
- Spring知识概括(2)