C 调试变量生成器

发布于 2024-10-05 16:14:50 字数 750 浏览 2 评论 0原文

我想请求帮助调试这段简单的 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);}
    }
}}

该函数应该生成包含 n 个 1 和 0 的字符串,并用 0 到 n-1 运算符分隔 例如,如果 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

我是一名初学者程序员,因此将不胜感激任何提示。

I would like to ask for help with debugging this simple piece of C code:

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);}
    }
}}

The function is supposed to generate strings which contain n 1s and 0s separated by 0 to n-1 operators
For example if n==3 then the output should be:

111
1+11
11+1
1+1+1
1*11
11*1
1*1*1
....
0/00
00/0
0/0/0
000

I'm a beginner programmer so would appreciate any tips.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

久随 2024-10-12 16:14:50

对函数的每次调用都使用相同的数组,并且您可以通过覆盖数组的现有元素来“插入”符号。这些都不是您想要发生的。

另外,你是如何调用该函数的? “数组”中最初包含什么?

Every call to the function is using the same array, and you "insert" symbols by over-writing an existing element of the array. Neither of these is what you want to happen.

Also, how are you calling the function? What is initially contained in the 'array'?

薄暮涼年 2024-10-12 16:14:50

您应该考虑研究回溯算法,因为在我看来这是一个回溯问题。

You should consider studying backtracking algorithms, since in my opinion this is a backtracking problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文