编译失败??

B3623 枚举排列(递归实现排列型枚举)

thehanged @ 2024-03-11 18:27:59

不知道为什么编译失败。 我测试了gcc和msvc都能编译成功,这就奇怪了

#include <iostream>
using namespace std;

const int N = 12;

int n, k;
int solution[N]; // 储存解决方案
bool st[N]; // 标志当前位置有没有被使用过

dfs(int x){
    if(x == k){ // 枚举到最后一位
        for(int i = 0; i < k; ++i) {
            cout << solution[i] << " ";
        }
        puts("");
    }
    for(int i = 1; i <= n; ++i){ // 枚举n名学生 
        if(!st[i]){
            solution[x] = i;
            // 往下枚举
            st[i] = true;
            dfs(x + 1);
            // 恢复现场
            st[i] = false;

        }
    }
}

int main(){
    cin >> n >> k;
    dfs(0);
    return 0;
}

by thehanged @ 2024-03-11 18:32:30

没事了,把void加上去。

编译器不太智能,return 0,返回值为void不写,在现在编译器中是完全没有问题的


by _xm_ @ 2024-03-11 18:38:25

还能这么写?


|