我想请求帮助调试这段简单的C代码:
void generator (int place, char *array, int n, int lol){
int i;
char c[6]={'1','0','+','-','*','/'};
if(n==0){
printf("%s\n",array);
return;
}
for(i=0; i<6; i++){
if (lol==0){
if (i>1) break;
array[place]=c[i];
lol=1;
generator(place+1, array, n-1, lol);
}
if(lol==1){
array[place]=c[i];
if(i>1){
lol=0;
generator(n+1, array, n, lol);
}
else{ lol=1;
generator(place+1, array, n-1, lol);}
}
}}
该函数应该生成包含由0到n-1运算符分隔的n 1和0s的字符串
例如,如果n==3,则输出应为:
111
1+11
11+1
1+1+1
1*11
11*1
1*1*1
....
0/00
00/0
0/0/0
000
我是一个初级程序员,所以希望你能给我一些建议。
最佳答案
对函数的每一次调用都使用相同的数组,并且通过写入数组的现有元素来“插入”符号。这两件事你都不想发生。
另外,您如何调用函数“数组”中最初包含什么?
关于c - C调试变量生成器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4356442/