#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 都沒有執行...
我看到你定義了兩個超大的數組,尤其是 word。我猜是因為它們太大導致“爆?!绷恕:瘮档臈笮∮邢?,不要使用太大的 local 變量。
你試試把這兩個數組改小些,或者在堆中動態創建它們。

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