C++ 我的代码已成功提交,但尝试在code chef上运行代码时出现SIGSEGV错误 #包括 #包括 使用名称空间std; int main(){ int t; cin>>t; 而(t--){ int x,y,m; cin>>m>>x>>y; int copH

C++ 我的代码已成功提交,但尝试在code chef上运行代码时出现SIGSEGV错误 #包括 #包括 使用名称空间std; int main(){ int t; cin>>t; 而(t--){ int x,y,m; cin>>m>>x>>y; int copH,c++,C++,我的代码已成功提交,但尝试在code chef上运行代码时出现SIGSEGV错误 #包括 #包括 使用名称空间std; int main(){ int t; cin>>t; 而(t--){ int x,y,m; cin>>m>>x>>y; int copHouseNo,run=x*y,count=0; 布尔之家[101]; memset(豪斯,1号,豪斯); 对于(inti=0;i>copHouseNo; 对于(int j=copHouseNo;j=1;j--) 豪斯[j]=0; } for(i

我的代码已成功提交,但尝试在code chef上运行代码时出现SIGSEGV错误
#包括
#包括
使用名称空间std;
int main(){
int t;
cin>>t;
而(t--){
int x,y,m;
cin>>m>>x>>y;
int copHouseNo,run=x*y,count=0;
布尔之家[101];
memset(豪斯,1号,豪斯);
对于(inti=0;i>copHouseNo;
对于(int j=copHouseNo;j=1;j--)
豪斯[j]=0;
}

for(int i=1;i“Code compiled successfully”(代码编译成功)没有任何意义,特别是如果您不将警告视为错误。建议:打印出所有循环边界,并确保它们不会破坏数组。错误/边界检查在哪里?您知道输入是什么吗?您相信这些输入始终是有效的输入吗?什么是“成功接受”这意味着与运行时错误有什么关系?
house
不包含有效的布尔值,并且您的程序具有未定义的行为。如果您有或可以确定导致程序失败的输入,则调试会容易得多。例如,您可以在调试器中运行程序,并首先看到崩溃还考虑替换<代码> BooLoad(101);和<代码> MeMSET(House,1,sieof(House)); <代码> STD::vector House(101,TRUE);,在调试时利用<<代码> 方法。代码将运行得更慢,但这主要是因为它执行边界检查。
#include <iostream>
#include<string.h>
using namespace std;

int main() {
    int t;
    cin>>t;
    while(t--){
        int x,y,m;
        cin>>m>>x>>y;
        int copHouseNo,run=x*y,count=0;
        bool house[101];
        memset(house,1,sizeof(house));
        for(int i=0;i<m;i++){
            cin>>copHouseNo;
            for(int j=copHouseNo;j<=100 && j<=copHouseNo+run;j++)
                house[j]=0;
            for(int j=copHouseNo;j>=copHouseNo-run && j>=1;j--)
                house[j]=0;
        }
        for(int i=1;i<=100;i++)
            if(house[i])
                count++;
       cout<<count<<endl;
    }
    return 0;
}