鹰之歌

既然你崇拜鹰,就要像鹰一样翱翔天际,俯瞰大地。哪怕会摔的粉身碎骨。

导航

电话号码对应英语单词

来源:《编程之美-----微软技术面试心得》

要求:根据一串数字输出对应在手机键盘上的相应所有字符。

#include<stdio.h>
#include
<stdlib.h>

//KeyBoard二维数组记录每个数字键对应的字符集
char KeyBoard[10][10]={
"",//0
"",//1
"ABC",//2
"DEF",//3
"GHI",//4
"JKL",//5
"MNO",//6
"PQRS",//7
"TUV",//8
"WXYZ",//9此处逗号可以不要
};

//Total数组记录每个数据见能表达的字母的个数
int Total[10]={
0,//0
0,//1
3,//2
3,//3
3,//4
3,//5
3,//6
4,//7
3,//8
4//9
};

//OffSize数组记录每个字母在它所在的数字键能代表的字符集中的偏移(索引),初始化为0
int OffSize[10]={0};

int main()
{
//Number数组存放一串待处理的数字
int Number[]={2,3,4};
//n为Number数组中数字的个数
int n=sizeof(Number)/sizeof(Number[0]);

while(1)
{
for(int i=0;i<n;i++)
printf(
"%c",KeyBoard[Number[i]][OffSize[Number[i]]]);
printf(
"\n");

int k=n-1;//此句的位置很重要
while(k>=0)
{
if(OffSize[Number[k]]<Total[Number[k]]-1)
{
OffSize[Number[k]]
++;
break;
}
else
{
OffSize[Number[k]]
=0;
k
--;
}
}

if(k<0)
break;

}

return (EXIT_SUCCESS);
}

posted on 2011-04-08 11:59  鹰之歌  阅读(970)  评论(0编辑  收藏  举报