2
我是解決問題 https://www.spoj.pl/problems/ACPC11A/SIGSEGV上提交
這裏是我的代碼:
#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
using namespace std;
int main()
{
int tc,i,n;
scanf("%d",&tc);
while(tc--)
{
vector<string> v1,v2;
string str,w;
scanf("%d",&n);
int flag=0;
for(i=0;i<n;i++)
{
cin>>str;
if(str[0]!='#')
{
flag=1;
w=str;
}
else if(flag==0)
{
v1.push_back(str);
}
else
v2.push_back(str);
}
//print v2-->w-->v1
for(i=0;i<v2.size();i++)
{
cout<<v2[i]<<" ";
}
if(w!="")
cout<<w<<" ";
for(i=0;i<v1.size()-1;i++)
cout<<v1[i]<<" ";
cout<<v1[v1.size()-1]<<endl;
v1.clear();v2.clear();str.clear();w.clear();
}
return 0;
}
我得到的樣品測試情況下,正確的輸出...但我提交的代碼提供分段故障。
我的邏輯是簡單.. 我把2個載體1用於存儲字的英語單詞到達之前(V1)和另一個用於英語單詞之後存儲的世界到來(V2) 之後,我打印V2的內容,隨後通過單詞,然後是v1的內容。
請幫我理解爲什麼這段代碼給出了段錯誤。
不信任的網站.......不開放 – 2011-12-25 15:54:37