/*******5.5*********************/
#include <stdio.h>
#include <string.h>
#define uint unsigned int
void Exchange(char *str,uint i,uint j,char *p)
{
switch(str[i])
{
case '2':switch(j)
{
case 1:p[i]='A';break;
case 2:p[i]='B';break;
case 3:p[i]='C';
}
break;
case '3':switch(j)
{
case 1:p[i]='D';break;
case 2:p[i]='E';break;
case 3:p[i]='F';
}
break;
case '4':switch(j)
{
case 1:p[i]='G';break;
case 2:p[i]='H';break;
case 3:p[i]='I';
}
break;
case '5':switch(j)
{
case 1:p[i]='J';break;
case 2:p[i]='K';break;
case 3:p[i]='L';
}
break;
case '6':switch(j)
{
case 1:p[i]='M';break;
case 2:p[i]='N';break;
case 3:p[i]='O';
}
break;
case '7':switch(j)
{
case 1:p[i]='P';break;
case 2:p[i]='R';break;
case 3:p[i]='S';
}
break;
case '8':switch(j)
{
case 1:p[i]='T';break;
case 2:p[i]='U';break;
case 3:p[i]='V';
}
break;
case '9':switch(j)
{
case 1:p[i]='W';break;
case 2:p[i]='X';break;
case 3:p[i]='Y';
}
}
}
void List(char *str,uint k,char *p)
{
uint j;
if(k==strlen(str))
{
printf("%s/n",p);
}
else
{
for(j=1;j<=3;j++)
{
Exchange(str,k,j,p);
List(str,k+1,p);
}
}
}
void ListMnemonics(char *str)
{
char ch[10]={0};
List(str,0,ch);
return;
}
void main()
{
ListMnemonics("234");
}