其实就是一个简单的算法问题,我给你写出算法来,补代码就简单多了。
看你问题的描述,就是给定一个数,给出对应的拼音。但是要按习惯读出来,对吧。其实不难,抓住主要的,数:0~9对应的拼音,还有就是读出位数来,个,十,百等。所以就简单多了
先要有0~9对应的拼音。
再要有位数的拼音:(个就可以不要了),十,百,千。。。。。。
有几个注意点:1>给一个数,拆除他的个,十,百,等。就是利用 x/y和x%y,这个相信,是个编程的人都会。(有个这个就可以确定 ’百‘,‘十’,等了。),
2>这个是一个细节的处理问题。102读作 1百0二,1002读1千零二,100002,10201等。就是一个数这么读的问题,就不多说了,小学的,都懂。
代码其实很简单了吧。
#include<stdioh>
#include<stringh>
int main()
{
char a[111]={'\0'},b[6][33]={'\0'};
int k=0,j=0;
gets(a);//输入一个字符串
for(int i=0;i<strlen(a);i++)
{
if(a[i]!=' ')
b[k][j++]=a[i];//将每个名字存入二维数组的每一行中
else
{
k++;
j=0;
}
}
for(int i=0;i<=k;i++)
{
for(int j=strlen(b[i])-1;j>=0;j--)
{
printf("%c",b[i][j]);
}
printf("\n");
}
return 0;
}
输入法中使用了两个重要数据结构,分别是PY_NODE和PY_SUBNODE。每个PY_NODE对应一个数字键组合,PY_SUBNODE则对应一组拼音组合。由于一个数字组合可对应多个拼音组合(如“226”对应“ban”、“bao”、“can ”、“cao”),因此这两个结构实现的是一个两级的对应表。
PY_NODE按树组织,而PY_SUBNODE按双向链表组织。二者的基本关系如图1所示。
以下是两个结构的定义:
typedef struct py_node{
unsigned int son[8]; //对应下次2~9按键输入时应转到的PY_NODE的ID号
unsigned int father; //父节点ID号
struct py_subnode ptrpy; //指向下属第一个PY_SUBNODE的指针
}PY_NODE;
typedef rom struct py_subnode{
unsigned char py[7]; //本节点的拼音字符串
struct py_subnode prev; //指向前一PY_SUBNODE的指针
struct py_subnode next; //指向下一PY_SUBNODE的指针
unsigned char ptrUnicode; //指向本节点对应Unicode码表的指针
}PY_SUBNODE;
设计中我们所参照的汉语拼音表中共有412种组合,这样系统中必须有412个PY_SUBNODE与其一一对应;系统中共建立了250个PY_NODE。建立此部分数据的工作比较繁琐,分以下5个步骤进行:
1、 汉字按拼音进行分组,按常用程度排序,并将汉字转化为Unicode码或国标码,码型视系统要求而定;
2、 将有效拼音转换为数字键盘值组合,如拼音“cui”转为数字值“284”,这些值对应了部分PY_NODE;
3、 增加中间PY_NODE,用于表示本身无效但后续输入有效的拼音,如“b”、“c”、“don”、“dua”等节点;
4、 将数字键组合相同的PY_SUBNODE编成链表,由某一PY_NODE中的ptrpy指针指向表头;
5、 按数字键组合的关系,将PY_NODE组成树。
图1中所示组织关系并不复杂,但其工作量不小,一般情况下可编写转换程序自动建立。图2为拼音输入法数据结构的一个片断。
在改变当前PY_NODE时,一般应伴有一些显示 *** 作,因应用不同各有差异,此处不做过多说明。
在当前节点下,可以用某一指定控制键(如“#”键)来选择此PY_NODE下属的PY_SUBNODE以缩小汉字的选取范围。
例子在下面
目前各种各样、五花八门的编程语言100%都是老外发明的,尤其是美国人。这些能够发明编程语言的人那都是相当厉害的角色,他们绝对不会把时间花在学习他们认为非常复杂的汉语上,也就是编程语言的语法是没有汉语拼音的。 没办法,谁叫人家比咱强呢。等到哪天咱们中国出现一位牛人,开发出一种语言,用汉语拼音来定义。
如果用汉语拼音来定义常量,变量等等那是没问题的,如果是语法,那目前只能老老实实用英语来实现,而绝不是汉语拼音。
顺便提及下,Ruby语言是一种面向对象的、动态的解释性语言,它是由日本人松本行弘(まっもとゅきひぅ,英译:Yukihiro Matsumoto,外号Matz)开发完成的。长期以来,松本行弘一直想发明一种语言,该语言不仅能够使软件开发人员进行高效的开发工作而且又能享受到编程的快乐。于是从1993年2月24日开始,他正式启动了Ruby语言的研发工作,1995年12月正式公开发布了Ruby的第一个版本:Ruby 095。可是这种语言的语法仍然是英语的,而非日语。
可以通过除法运算符( / )和求余运算符( % )结合循环来实现分别输出一个整数的每位数字。
具体实现方法可以参考如下程序及注释说明:<pre t="code" l="cpp">#include<stdioh>
void main()
{
int data;
int temp;
printf("请输入一个整数:");
scanf("%d", data); // 接收用户输入的整数,并赋值给变量data
printf("%d从最低位到最高位分别为:", data);
while(data>0) // 当data=0或小于0时,退出循环,此时所以位数都已取出
{
temp = data % 10; // 取出data的最低位
printf("%d ", temp); // 输出最低位
data /= 10; // 将去掉data的最低位,次低位变为最低位
}
}
以上就是关于怎样在JAVA编程中输入一个数字输出这个数字的拼音全部的内容,包括:怎样在JAVA编程中输入一个数字输出这个数字的拼音、输入五个人的姓名拼音然后倒序输出用c语言如何编程、【急】用c++实现汉字转拼音程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)