char * dict[]={
"bland",
"blank",
"bleak",
"bleed",
"blend",
"blind",
"blink",
"blond",
"blood",
"bloom",
"blown",
"blows",
"brand",
"brank",
"bread",
"break",
"bream",
"breed",
"brown",
"clank",
"clink",
"dread",
"dream"
}
#define MAX_DICT 23
checkin(char * input){
int i
for(i=0i<MAX_DICTi++)
{
if(strcmp(input,dict[i])==0)return i
}
return -1
}
getNext(char * input,int count,int indexes[])
{
int i,j,len,dest,k,cc
char new[100]
len=strlen(input)
for(i=0i<leni++)
{
strcpy(new,input)
for(j=0j<26j++)
{
new[i]='a'+j
cc=0
for(k=0k<countk++){
if(strcmp(dict[indexes[k]],new)==0){
cc=1
break
}
}
if(cc==1)continue//已经变换过
dest=checkin(new)
if(dest>=0)return dest//找到可以变换的词
}
}
return -1//没有可以变换的词
}
main(){
char input[100],new[100],output[100],road[1024]
int index,i,j,dest,count,indexes[MAX_DICT]
strcpy(input,"")
while(strcpy(input,"quit")!=0)
{
printf("请输入变换字符串:")
scanf("%s",input)
if(strcmp(input,"quit")==0)break
printf("请输入目标字符串:")
scanf("%s",output)
if(strcmp(output,"quit")==0)break
index=checkin(output)
if(index<0){
printf("%s 不在字典里!\n",output)
continue
}
index=checkin(input)
if(index<0){
printf("%s 不在字典里!\n",input)
continue
}
strcpy(road,"")
strcpy(new,input)
count=0
indexes[count]=index
count++
while(1)
{
dest=-1
dest=getNext(new,count,indexes)
if(dest<0){
printf("不存在变换系列\n")
break
}
else if(strcmp(dict[dest],output)==0){//找到目标字符串
printf("%s,%s%s\n",input,road,output)
break
}
else{//变换过程,如果成功变换则输出
strcat(road,dict[dest])
strcat(road,",")
strcpy(new,dict[dest])
indexes[count]=dest
count++
}
}
}
}
1.输入语句:scanf("控制格式",接受值列表),其中控制格式常用的有:%d,%c,%s,%f,分别表示整型,字符型,字符串和浮点型.
例如int
achar
cscanf("%d
%c",&a,&c)表示向a和c输入值
2.赋值语句:=号,如将b赋值为10,为b=10
3.条件:if(布尔表达式){程序}else{程序}(注:此结构可嵌套)
switch(离散量){case
常量:...case
常量:...}
例:int
ascanf("%d",&a)
if(a>10)
{printf("大于10")}
else
{printf("小于10")}
例:switch(months)
{
case
1:printf("1月有31天")break
case
3:printf("3月有31天")break
....
default:break
}
4.循环:for结构,while结构,do-while结构
for(初始化判断变化)
{
}
while(条件)
{
}
do
{
}while(条件)
printf("n=%uP[%u]=%f\n",&n,&n,&P[n])//这个输出的是n和P[n]的地址.改成
printf("n=%dP[%d]=%f\n",n,n,P[n])