赛码网大家用过吗

完美世界2018校招编程练习,多线程协作打印。


#include<bits/stdc++.h>
using namespace std;
mutex mtx;
intactive =0;
intn;
voidprint(intthread_idx,intk ,charc){
    inti =0;
    cout << thread_idx << endl;
    while(i < k) {
        mtx.lock();
        if(active == thread_idx){
            cout << c ;
            active = (active++)%n;
            i++;
        }
        mtx.unlock();
    }
}
intmain(){
    cin >> n;
    string s;
    cin >> s;
    vector<thread> vth;
    for(inti =0; i < s.size(); i++){
        vth.push_back(move(thread(print, i, n, s[i])));
    }
    for(auto &t : vth)
        t.join();
    return0;
}
本地运行的结果正常,为啥在赛码网上就错误呢?如下图

跪求各位大佬指点!!感谢
#完美世界##笔试题目#
全部评论
赛码网是我见过最差的.......
2 回复 分享
发布于 2019-08-04 09:49
反正python的缩进在那里面是2个空格,贼吉尔奇葩
1 回复 分享
发布于 2019-08-03 18:14
插入代码不会自动换行,我也是佛了 #include<bits/stdc++.h> using namespace std; mutex mtx; int active = 0; int n; void print(int thread_idx, int k , char c){ int i = 0; cout << thread_idx << endl; while(i < k) { mtx.lock(); if(active == thread_idx){ cout << c ; active = (active++)%n; i++; } mtx.unlock(); } } int main(){ cin >> n; string s; cin >> s; vector<thread> vth; for(int i = 0; i < s.size(); i++){ vth.push_back(move(thread(print, i, n, s[i]))); } for(auto &t : vth) t.join(); return 0; }
点赞 回复 分享
发布于 2019-08-03 13:19
用牛客的
点赞 回复 分享
发布于 2019-08-03 18:03
我试了一下在线编程,是不是不能自动换行。。。
点赞 回复 分享
发布于 2020-04-16 09:51

相关推荐

1 2 评论
分享
牛客网
牛客企业服务