#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ char a[10000],*p,word[10000][10000]; //用二维数组来存多个字符串 int i,j; while(cin.get(a,10000)) { if(strcmp(a,"#")==0) break; else { int n=0; p=strtok(a," "); for(i=0;p!=NULL;i++) { strcpy(word[i],p); p=strtok(NULL," "); } for(int k=0;k<i;k++) for(j=k+1;j<i;j++) if(strcmp(word[k],word[j])==0) { n++; break; } cout<<i-n<<endl; } } return 0;}
2 回答

onemoo
TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
哦,是這樣啊。連一開(kāi)始的?cin.get 都沒(méi)有執(zhí)行...
我看到你定義了兩個(gè)超大的數(shù)組,尤其是 word。我猜是因?yàn)樗鼈兲髮?dǎo)致“爆?!绷?。函數(shù)的棧幀大小有限,不要使用太大的 local 變量。
你試試把這兩個(gè)數(shù)組改小些,或者在堆中動(dòng)態(tài)創(chuàng)建它們。

onemoo
TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
這個(gè)是編程環(huán)境命令行的一個(gè)功能,在程序執(zhí)行之后會(huì)等你按一個(gè)鍵才會(huì)退出。不然的話程序執(zhí)行完命令行界面就會(huì)退出——眨眼間小黑窗口就消失了——你就看不到結(jié)果了。
所以你不用管這個(gè),只需要看看程序執(zhí)行的結(jié)果是否正確。
還有,記得把代碼用發(fā)帖工具格式化一下。這樣一坨沒(méi)法看的。
- 2 回答
- 0 關(guān)注
- 4432 瀏覽
添加回答
舉報(bào)
0/150
提交
取消