比如说,在对学生讲解第1234567009号位置上的碱基时,光看着数字是很难准确的念出来的。
所以,他迫切地需要一个系统,然后当他输入12 3456 7009时,会给出相应的念法:
十二亿三千四百五十六万七千零九
用汉语拼音表示为
shi er yi san qian si bai wu shi liu wan qi qian ling jiu
这样他只需要照着念就可以了。
你的任务是帮他设计这样一个系统:给定一个阿拉伯数字串,你帮他按照中文读写的规范转为汉语拼音字串,相邻的两个音节用一个空格符格开。
注意必须严格按照规范,比如说“10010”读作“yi wan ling yi shi”而不是“yi wan ling shi”,“100000”读作“shi wan”而不是“yi shi wan”,“2000”读作“er qian”而不是“liang qian”。
shi er yi san qian si bai wu shi liu wan qi qian ling jiu
#include<stdio.h>
int main()
{
char*num[]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
char*wei[]={"shi","bai","qian","wan","yi"};
char*str[20];
int i,j,k,n,l[2]={0};
i=0;j=0;
scanf("%d",&n);
while(n>0)
{
k=n%10;
n/=10;
if(k>0)
{
if(i>0)
{
if(i>=4&&!l[i/4-1])
{
l[i/4-1]=1;
str[j++]=wei[i/4+2];
}
if(i%4!=0)str[j++]=wei[i%4-1];
}
str[j++]=num[k];
}
else if(j>0&&str[j-1]!=num[0])
{
str[j++]=num[0];
}
i++;
}
if(!(str[j-1]=="yi"&&j>1&&str[j-2]=="shi"))
printf("%s ",str[j-1]);
for(i=j-2;i>=0;i--)
printf("%s ",str[i]);
return 0;
}