| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2286 人关注过本帖
标题:[求助]用c语言递归实现字符的排列组合
取消只看楼主 加入收藏
alicelifei
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-10-14
收藏
 问题点数:0 回复次数:4 
[求助]用c语言递归实现字符的排列组合
为了使电话号码更容易记住,服务商想用字母来拼写适当的单词,使代表某种业务的电话
号码容易记忆。例如,在些地方,提供报时服务的电话号码是637—8687(NERVOUS)。
2:ABC
3:DEF
4:GHI
5:JKL
6:MNO
7:PQR
8:STU
9:VWX
假设您被一家本地电话公司聘用,要编写一个ListMnemonics程序,它能生成由一串数字
表示的电话号码所对应的所有字母组合。例如,如果调用
ListMnemonic s(“723”)
那么将会产生27种字母组合.
PAD PBD PCD RAD RBD RCD SAD SBD SCD
PAE PBE PCE RAE RBE RCE SAE SBE SCE
PAF PBF PCF RAF RBF RCF SAF SBF SCF
搜索更多相关主题的帖子: c语言 递归 RAD 排列 字符 
2006-11-06 11:32
alicelifei
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-10-14
收藏
得分:0 
这是<<程序设计抽象思想>>这本书上第五章课后的第五道编程题
2006-11-06 11:43
alicelifei
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-10-14
收藏
得分:0 
人家還是不明白呢
2006-11-06 15:16
alicelifei
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-10-14
收藏
得分:0 

#include <stdio.h>
#include "string.h"

void charToChar(char v[]);
void ListMnemonics(char str[][4],int length);

char p[12];

main()
{
int i;
char *v;
clrscr();
printf("Please input not more than 12 telphone numbers:");
gets(v);

charToChar(v);

getch();
}

void charToChar(char v[])
{
int i,j,*num,length;
char str[12][4];
char *number[]=

{"ABC","DEF","GHI","JKL","MNO","PQR","STU","VWX"};

length=strlen(v);

for(i=0;i<length;i++)
{
num[i]=v[i]-48;
}

for(i=0;i<length;i++)
{
for(j=0;j<3;j++)
{
str[i][j]=number[num[i]-2][j];
}
str[i][j]='\0';
}


ListMnemonics(str,length);

}

void ListMnemonics(char str[][4],int length)
{
int i;

if(length==0)
{
printf("%s ",strrev(p));
strrev(p);
}

else
{
for(i=0;i<3;i++)
{
p[length-1]=str[0][i];
ListMnemonics(++str,--length);
--str;
++length;
}

}

}

2006-11-06 15:32
alicelifei
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-10-14
收藏
得分:0 

我帖子上面的例子是寫錯了一點呢。大家領會精神就好了。不好意思。

2006-11-06 15:41
快速回复:[求助]用c语言递归实现字符的排列组合
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027626 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved