看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《ken81270 (ken81270)》之銘言: : 個人是個新手 : 看不出來這個程式要改哪一個地方 : #include<stdio.h> : main() : { : int a,b,c; : for(a=1,b=1,(c=getchar());(c=getchar())!=EOF;a=a+1){ : if(b==1){ : printf("%04d",a); : b=0; : } : putchar(c); : if(c=='\n'){ : b=1; : } : } : } : 他執行跑出 : a : 0001 : b : 0002b : c : 0004c : d : 0004d : 但實際上應該要跑出 : a : 0001 a : b : 0002 b : c : 0003 c 同理當你輸入 apple [enter] 時, 要輸出 0001 apple 的字樣, 所以我覺得你應該不是想寫這種只能處理字元的程式, 一來要依 據換行字元來轉移狀態, 二來程式也會有許多條件分支, 讀起來 更難懂. 讀入字串可以使用 : char line[ 100 ]; scanf( "%s", line ); 每次迴圈都讀一次, 就能得到每一行的字串(因為是以enter結束) 另外再設一個計數器去數行數, 當 scanf 回傳值為零時, 表示輸 入失敗, 迴圈停止, 最後的程式碼長這樣: scanf 版: http://codepad.org/6pmFfHs8 gets 版: http://codepad.org/IKGJDT75 : 才對不知道要改哪? 在你還沒了解題目的要求前千萬別動手寫程式, 程式碼就像一篇 文章, 沒有規劃好劇情就下筆, 不僅難寫好, 你要改也不知從何 下手. -- ◢████ ◢█ ◢██◣ ◢█ ◢███ ◢█ T-ara版怎麼去 ████◢█████s ~> T-ara ███ █ ◢█歡迎您的光臨 ███████████恩靜智妍孝敏 ███ ██ 素妍居麗寶藍 ████◥██◤ █████ψmakigoto123 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.115 ※ 編輯: loveme00835 來自: 140.121.197.115 (11/26 01:10)