#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貢獻883條經驗 獲得超454個贊
哦,是這樣啊。連一開始的?cin.get 都沒有執(zhí)行...
我看到你定義了兩個超大的數組,尤其是 word。我猜是因為它們太大導致“爆棧”了。函數的棧幀大小有限,不要使用太大的 local 變量。
你試試把這兩個數組改小些,或者在堆中動態(tài)創(chuàng)建它們。

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