#include<iostream>
#include<string>
using namespace std;
int main()
{
char arr[1000][80];
char output[1000][80];
int n,i,j;
int num[1000];
cin>>n;
for(i=0;i<n;i++)
{
cin>>num[i];
cin>>arr[i];
}
for(i=0;i<n;i++)
{
for(j=(num[i]-1);j<(strlen(arr[i])-1);j++)
{
arr[i][j]=arr[i][j+1];
}
arr[i][j]='\0';
cout<<"\n"<<(i+1)<<" "<<arr[i];
}
return 0;
}
這是在Spoj上上傳時出現上述錯誤的代碼。相同的代碼在Borland C++上運行良好。運行時錯誤(SIGSEGV)
什麼是「scoj」? – bk1e 2009-09-26 16:00:10
我認爲這可能是一個拼寫錯誤(http://www.spoj.pl/),在這種情況下發布挑戰號碼可能會很有用。仔細重讀指令,例如他們說輸入字符串的長度最多爲80個字符。作爲一個提示:我認爲你可以在輸入後處理和輸出,不需要大數組。 – UncleBens 2009-09-26 16:29:20
我認爲對於代表性的代碼片斷來說,使用斷言不會超出數組範圍是非常好的! – Narek 2009-09-26 19:05:24