1002 写出这个数 (C语言实现)
题目描述:
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10^100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
思路:
(1)关于数据类型:n的数值过大不能定义为int型整数或数组(元素过多)直接输入,比较好的思路是定义一个char型的数组str储存输入的数字;
(2)关于输入:10^100的大小为
即1后面有100个0共101位数字,故str元素个数应大于或等于101,在标准输入中无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF,储存读入的字符用到了以下常用做法:
while(scanf("%s",str) != EOF);
(3)关于字符串的转化:字符串转化为整数数值可以采用以下方式
int num=str[i]-'0';
(4)关于求整数各进制位上的数字:
n=num%10;
num=num/10;
(5)关于输出格式:注意最后一个拼音后无空格
(6)可以借鉴的地方:用二维数组pinyin存放了0到9对应的拼音名称,同时将之前求得的各进制位上的数字组成的数组weishu当成数组pinyin的元素大大节省了空间和时间。
AC的代码
// Date:2020/4/29
// Author:xiezhg5
#include <stdio.h>
#include <string.h>
int main(void) {int i,num,sum=0,count=0;int weishu[5];char pinyin[][5]= {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};char str[101];//读入字符并转化为整数数值 while(scanf("%s",str) != EOF);for(int i=0; i<strlen(str); i++) {sum=sum+str[i]-'0';}//求进制位上的数字 while(sum!=0) {weishu[count]=sum%10;sum=sum/10;count++;}//格式输出(最后一个拼音后无空格) for(int i=count-1; i>0; i--)printf("%s ",pinyin[weishu[i]]);printf("%s",pinyin[weishu[0]]);return 0;
}
1002 写出这个数 (C语言实现)相关推荐
- pat真题1002 写出这个数C语言解法和java解法
pat真题1002 写出这个数C语言解法和java解法 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这 ...
- 1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 ...
- textarea限制字符数_PAT乙级-1002 写出这个数
PAT乙级-1002 写出这个数 本文作者:Shen,JQ 来源 https://pintia.cn/problem-sets/994805260223102976/problems/99480532 ...
- 1002 写出这个数 (20分)
1002 写出这个数 (20分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10 ...
- C++学习之路 | PTA乙级—— 1002 写出这个数 (20分)(精简)
1002 写出这个数 (20分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10 ...
- 1002.写出这个数
题目截图: 思路: 将输入存储到字符数组中,然后求各位和,然后根据和的每一位输出. 代码: 1 /* 2 1002.写出这个数 3 */ 4 5 #include <stdio.h> 6 ...
- 【PAT乙】1002 写出这个数 (20分)
1002 写出这个数 (20分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10 ...
- 1002 写出这个数 (20 分)
1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1 ...
- PAT 乙级 1002 写出这个数
1002 写出这个数 (20 point(s)) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 ...
最新文章
- 如何查看ubuntu下的分区命令
- Maven出现错误No plugin found for prefix ‘jetty‘ in the current project and in the plugin groups的问题解决
- spark算子_十、Spark之详解Action类算子
- 文件I/O实践(2) --文件stat
- iOS:Covert p12 back to CSR
- vue $ 符号(例如vm.$data vs vm.data):读取实例属性 vs 读取 data 数据
- [算法]华为笔试题——字母和十进制数映射
- mysql 基本命令整理(1)
- CSS/HTML/JS实现图片轮播
- 怎么测试电脑的机械硬盘或SSD固态硬盘的读写速度?
- STM32LED--基于HAL库(LCD与LED冲突?一文看懂如何精准劝架)
- 颜色科学与计算机测色配色实用技术,颜色科学与计算机测色配色实用技术
- skimage rescale_intensity函数
- html radio 更换图片,CSS 点击radio实现两个图片样式切换并且多个radio中只能有一个checked...
- 苗圩:5G技术将八成用于移动物联网 年内适时发放5G牌照
- UVM jelly_bean
- 查看MySQL的版本号
- 图书音像全场满100返100
- Linux直接在通过终端打开图片文件
- 什么是交换机?描述一下工作过程?交换机基本功能、交换机是如何转发数据包的,什么是三层交换机?和二层交换机有什么区别?三层交换机是否可以代替路由器?为什么?