PAT乙级考试-1002 写出这个数
题目
思路
- .录入数据
由于数字很大,正常使用整形变量肯定无法储存,考虑使用一个字符数组来储存数字,再转换为正常数字 - 转换数据
通过累加将字符数组中的数据的各位数之和sum求出 - 打印数据
使用一个字符串数组来存放每个数字对应的中文字符
将各位数之和sum通过取余的方式取出每一位的数字
打印每一位数字的中文字符,注意最后一位不打印空格
#include<stdio.h>
int main(void)
{
int sum, i;
char num[101];
scanf("%s", num);
for (i = 0, sum = 0; num[i] != '\0'; i++)
sum += num[i] - '0';
const char* zifu[10] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };
int temp = sum;
for (i = 0; temp > 0; temp /= 10, i++)
num[i] = temp % 10;
for (i = i - 1; i >= 1; i--)
printf("%s ", zifu[num[i]]);
printf("%s", zifu[num[i]]);
return 0;
}