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