作者yantchen (球童Yanting)
看板NTUE-CS101
標題Re: [課業] 物件導向作業
時間Thu Mar 5 08:03:23 2009
嗯
我昨天離開去上晚上的課
所以老師還沒跟我說
剛剛上ican 繳交時間是 3/11星期三
--
先簡單複習一下昨天的字串輸入
C++裡面有兩種字串:char陣列 & string(也許之後會交也許不會)
char陣列 對 cin/cout 就跟基本型態一樣 可以直接丟給他
意思是說
int a;
cin>>a; // 把 輸入的數字 存到 a
char b;
cin>>b; // 把 輸入的文字 存到 b , 只存一個字
// 超過的會存到下一次呼叫cin的變數裡
char c[20];
cin>>c; // 把 輸入的文字 存到 c , 存你輸入的整個字串
// 超過空間的會存到別人家去
注意看喔
cin>>c; 沒有 [] 因為 C++ 把 "char陣列" 當作 "一個字串"
反而加上[]的話 他會變成 b 的情況 只能存一個字
例如 cin>>c[0];
雖然 c[0] c[1] 這樣的東西只能存一個字 看起來很廢
但是他還是會用到的
例如說字串排序的時候
要一個字一個字拿出來比較
這時候他就會用到了
ex: c字串裡面 第1個字是 c[0]; 第2個字是 c[1] ... 以此類推
不知道老師有沒有要求要用昨天交的動態記憶體配置 ( new / delete )
如果沒有的話
就開100個空間給他吧 這樣比較簡單 ( 你也可以試試看用動態的 )
假設你要存10個人的分數
float d[10];
for(int i=0;i<10;i++){ cin>>d[i]; }
這個是上學期的
那現在改成要存10個人的名子 先假設她們都是"字串"
字串 e[10];
for(int i=0;i<10;i++){ cin>>e[i]; }
然後"字串"就是 char 陣列
所以正確的寫法是
char e[10][20]; // 第一個維度是 幾個人 ; 第二個維度是 每個人有幾的空間
for(int i=0;i<10;i++){ cin>>e[i]; }
基本知識講到這
你們先自己寫寫看
有問題再問我吧
給你們一點提示~
現在的作業是 "字串排序"
所以 還記得排序怎麼寫嗎
有兩個迴圈 然後比較、交換 ( 回去翻書 or 找以前的程式碼 )
字串排序也是有這兩個部份
只是比較跟交換的部份 會比之前的麻煩一些
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.68.15.209
推 rockmyangel:我的頭頭有點痛了 哭 03/05 21:29
→ rockmyangel:我來試試 03/05 21:30
推 jerry771210:哪個頭頭?? 03/05 21:43