我有一个问题需要一些帮助才能解决。我希望我能得到一些关于更好的方法来处理我正在做的事情的指示。我的主要问题是下面的几行(//这让我感到困惑)并在页面底部进行了描述。
我需要排列电话号码的所有可能结果:(不仅仅是字典单词)
即 222-2222
应该输出一个 3^7 长的列表,其中包含 a、b、c 的所有可能排列
IE
AAAAAAA
AAAAAAB
AAAAAAC
AAAAABA // THIS IS WHATS HANGING ME UP
AAAAABB
AAAAABC
AAAAACA // HERE TOO AND SO ON
我的代码(专门为测试而缩短)给了我:
AAAA
AAAB
AAAC
AABC
AACC
ABCC
ACCC
BCCC
CCCC
我是一个开始编程的学生,所以我的知识可以用于使用 for、while、if 语句以及从数组中获取单个字符。
到目前为止,这是我的代码的样子:(这是函数的一部分。缺少代码)
char alphaFunc(char n[]){
int d1=n[0]-48;
int d2=n[1]-48;
int d3=n[2]-48;
int d4=n[3]-48;
int d5=n[4]-48;
int d6=n[5]-48;
int d7=n[6]-48;
int a=0,b=0,c=0,d=0,e=0,f=0,g=0;
int i=0;
char charArray[10][4]={ {'0','0','0'},{'1','1','1'},{'A','B','C'},
{'D','E','F'},{'G','H','I'},{'J','K','L'},{'M','N','O'},
{'P','R','S'},{'T','U','V'},{'W','X','Y'} };
while(i <=14){
printf("%c%c%c%c\n", charArray[d1][a],
charArray[d2][b],charArray[d3][c],charArray[d4][d],
charArray[d5][e],charArray[d6][f],charArray[d7][g]);
g++;
if(g==3){
g=2;
f++;
}
if(f==3){
f=2;
e++;
}
if(e==3){
e=2;
d++;
}
我并不是要找人来帮我做这件事并将其重置为 [0] 它会将您发送到循环的不同部分。(希望这是有道理的)。