题目描述:

读入一个正整数 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语言实现)相关推荐

  1. pat真题1002 写出这个数C语言解法和java解法

    pat真题1002 写出这个数C语言解法和java解法 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这 ...

  2. 1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

    1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 ...

  3. textarea限制字符数_PAT乙级-1002 写出这个数

    PAT乙级-1002 写出这个数 本文作者:Shen,JQ 来源 https://pintia.cn/problem-sets/994805260223102976/problems/99480532 ...

  4. 1002 写出这个数 (20分)

    1002 写出这个数 (20分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10 ...

  5. C++学习之路 | PTA乙级—— 1002 写出这个数 (20分)(精简)

    1002 写出这个数 (20分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10 ...

  6. 1002.写出这个数

    题目截图: 思路: 将输入存储到字符数组中,然后求各位和,然后根据和的每一位输出. 代码: 1 /* 2 1002.写出这个数 3 */ 4 5 #include <stdio.h> 6 ...

  7. 【PAT乙】1002 写出这个数 (20分)

    1002 写出这个数 (20分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10 ...

  8. 1002 写出这个数 (20 分)

    1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1 ...

  9. PAT 乙级 1002 写出这个数

    1002 写出这个数 (20 point(s)) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 ...

最新文章

  1. 如何查看ubuntu下的分区命令
  2. Maven出现错误No plugin found for prefix ‘jetty‘ in the current project and in the plugin groups的问题解决
  3. spark算子_十、Spark之详解Action类算子
  4. 文件I/O实践(2) --文件stat
  5. iOS:Covert p12 back to CSR
  6. vue $ 符号(例如vm.$data vs vm.data):读取实例属性 vs 读取 data 数据
  7. [算法]华为笔试题——字母和十进制数映射
  8. mysql 基本命令整理(1)
  9. CSS/HTML/JS实现图片轮播
  10. 怎么测试电脑的机械硬盘或SSD固态硬盘的读写速度?
  11. STM32LED--基于HAL库(LCD与LED冲突?一文看懂如何精准劝架)
  12. 颜色科学与计算机测色配色实用技术,颜色科学与计算机测色配色实用技术
  13. skimage rescale_intensity函数
  14. html radio 更换图片,CSS 点击radio实现两个图片样式切换并且多个radio中只能有一个checked...
  15. 苗圩:5G技术将八成用于移动物联网 年内适时发放5G牌照
  16. UVM jelly_bean
  17. 查看MySQL的版本号
  18. 图书音像全场满100返100
  19. Linux直接在通过终端打开图片文件
  20. 什么是交换机?描述一下工作过程?交换机基本功能、交换机是如何转发数据包的,什么是三层交换机?和二层交换机有什么区别?三层交换机是否可以代替路由器?为什么?

热门文章

  1. 编译jrtplib和jthread
  2. 深入理解python--线程、进程与协程(1)
  3. Vue3.x使用富文本tinymce-vue
  4. cookies、sessions、token区别
  5. git导入项目时,git出现10054错误
  6. 高鸿业西方经济学微观部分第7版笔记
  7. 关于HTML网页生成网站
  8. 提取基因结构信息linux,求助:哪位高手知道如何通过基因编号提取序列
  9. 最佳的75个安全工具
  10. 计算机连接无线网络的步骤,台式电脑连无线网步骤