1002. 写出这个数
来源:互联网 发布:成都中科大cms漏洞 编辑:程序博客网 时间:2024/06/05 11:40
原题描述如下:
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:1234567890987654321123456789输出样例:
yi san wu
大概思路就是先求和然后输出对应的拼音。
#include <stdio.h>int main ( ){ char n; int sum = 0 ; char *py[ 10 ] = {"ling", "yi" , "er", "san" , "si" , "wu", "liu", "qi", "ba", "jiu" }; while ( (n = getchar() ) != '\n' ) sum += n - '0' ; if ( sum / 100 ) printf("%s ",py[ sum/100 ] ); if ( sum /10 ) printf("%s ",py[ sum /10 %10 ] ); if ( sum % 10 ) printf("%s\n",py [ sum % 10 ] ); return 0;}
一开始定义的是char py[ ] 一直报错,原来这是字符串型的数组(字符指针数组)元素为字符串(字符指针)
或者定义一个二维数组,一个汉字最多占三个字节,加上字符串结束符最多七个字节,可定义为char py[ ] [ 7 ] = {"ling", "yi" , "er", "san" , "si" , "wu", "liu", "qi", "ba", "jiu" };
后来发现输出一直对应多了一 明明是三输出si,发现少些了ling这个字符串。
但还是不对。。。有一个值错误
if语句里的个位其实不用判断,否则为零时会没有输出
#include <stdio.h>int main ( ){ char n; int sum = 0 ; char *py[ 10 ] = {"ling", "yi" , "er", "san" , "si" , "wu", "liu", "qi", "ba", "jiu" }; while ( (n = getchar() ) != '\n' ) sum += n - '0' ; if ( sum / 100 ) printf("%s ",py[ sum/100 ] ); if ( sum /10 ) printf("%s ",py[ sum /10 %10 ] ); printf("%s\n",py [ sum % 10 ] ); return 0;}
阅读全文
0 0
- 1002. 写出这个数
- 1002. 写出这个数
- 1002. 写出这个数
- 1002. 写出这个数
- 1002.写出这个数
- 1002. 写出这个数
- 1002. 写出这个数
- 1002. 写出这个数
- 1002. 写出这个数
- 1002. 写出这个数
- 1002. 写出这个数
- 1002. 写出这个数
- 1002.写出这个数
- 1002.写出这个数
- 1002. 写出这个数
- 1002. 写出这个数
- 1002. 写出这个数
- 1002. 写出这个数
- 以当前学习进度判断命令执行优先级!
- 并行开发笔记-3.使用互斥元(临界区)保护
- android中RGB颜色查询对照表
- 环境配置-mysql安装
- Node--Sequlize搭建服务
- 1002. 写出这个数
- App复活
- python dict 和set 详解
- 解决Maven的Could not calculate build plan的方法
- Marvell ESPRESSObin从NFS启动Linux
- Spring Boot (三) 热部署
- java上传文件实例
- mybatis的xml中使用foreach
- ReactNative知识体系