PAT_乙级 1002 写出这个数
来源:互联网 发布:帝国cms 分页代码 编辑:程序博客网 时间:2024/06/05 08:14
题目描述:
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu
解题思路:
数值过大的数字可以使用字符数组储存。
代码部分:
#include<stdio.h>int main(void){char num[100]={0};int i=0,result,tem,tem100,tem10,tem1;//gets(num);while(gets(num)!=NULL){//计算各位数字之和;result=0;for(i=0;i<=100 && num[i]!='\0';i++){//printf("%d\n",num[i]);tem=num[i]-48;result=result+tem;} //printf("result is :%d\n",result);// 打印; tem100=result/100;//printf("tem100 is : %d\n",tem100);tem10=(result/10)%10;//printf("tem10 is : %d\n",tem10);tem1=result%10;//printf("tem1 is : %d\n",tem1);switch (tem100){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;//case 0:printf("ling ");}switch (tem10){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;case 0:if(tem100==0)<span style="white-space:pre"></span>break;printf("ling ");break;}switch (tem1){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;case 0:printf("ling");break;}printf("\n");}}
可以改进部分:
打印汉字拼音可以使用一个二维数组储存10个字符串,通过tem数据作为第一维数组下标选择打印哪个数组。可以改善代码长度。下次补上
0 0
- PAT_乙级 1002 写出这个数
- 浙江大学PAT_乙级_1002. 写出这个数 (20)
- PAT乙级1002 写出这个数
- PAT乙级1002—写出这个数
- PAT 乙级 1002 写出这个数
- PAT-乙级-1002-写出这个数
- PAT-乙级-1002 写出这个数
- PAT乙级1002 写出这个数
- PAT 乙级 1002 1002. 写出这个数
- PAT乙级 1002 写出这个数
- PAT_乙题1002. 写出这个数 (20)
- PAT乙级-写出这个数
- PAT乙级1002题:写出这个数(20)
- PAT乙级真题1002_写出这个数
- PAT乙级——1002写出这个数
- PAT 乙级 1002. 写出这个数 (20)
- 浙大PAT乙级 1002. 写出这个数
- PAT乙级练习题1002. 写出这个数
- activemq时抛出的错误Could not connect to broker URL-使用线程池解决高并发连接
- APP设置启动图即Launch Images 隐藏系统状态栏
- C语言external-internal-none链接属性
- Asp.net生成静态网页的实现代码
- 显示LogCat日志猫窗口
- PAT_乙级 1002 写出这个数
- mysql创建数据库并授权命令
- 记一次ASP.NET无法连接数据库问题的解决方法(ORA-01017)
- GPL协议的代价
- 判断路径目录不存在,则创建目录
- ASP.Net将图片以二进制方式存入数据库,并读取
- 使用Java配置进行Spring bean管理
- 谈UIView Animation编程艺术
- 编译原理(3)-----0型文法和图灵机