[問題] 輸入未知個數,由Enter中斷

看板C_and_CPP作者 (達)時間11年前 (2014/03/24 02:34), 編輯推噓3(308)
留言11則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Win7 + Codeblocks 問題(Question): 下面是我練習寫的氣泡排序法 但程式碼寫死了輸入個數 現在想改成,完全不事先知道輸入個數 而是在DOS視窗輸入數字和空白間隔時 31 51 12 98 23 77... 直到鍵盤按了Enter 程式才知道全部有多少個數字要處理 翻了書,感覺書上的動態記憶體章節、malloc 還不夠我要達到的功能 請提示該怎麼寫 thank #include <stdio.h> #include <stdlib.h> int main(void) { int arr[4],temp,i,j; printf("input:"); scanf("%d%d%d%d",&arr[0],&arr[1],&arr[2],&arr[3]); printf("%d %d %d %d\n",arr[0],arr[1],arr[2],arr[3]); for(i=0; i<3; i++) { for(j=0; j<4; j++) { if(arr[j]<arr[j+1]) { temp= arr[j+1]; arr[j+1]=arr[j]; arr[j]=temp; } } } printf("%d %d %d %d",arr[0],arr[1],arr[2],arr[3]); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.163.106.192

03/24 10:46, , 1F
開個arr[1000]根本用不到malloc 你要煩惱的是怎麼輸入
03/24 10:46, 1F
要學習能夠按即時情況的寫法啊 ※ 編輯: dharma 來自: 118.163.106.192 (03/24 11:09)

03/24 11:08, , 2F
還是先存字串吧
03/24 11:08, 2F

03/24 11:35, , 3F
http://tinyurl.com/lb8fjjv 下面或許有可用的範例
03/24 11:35, 3F

03/24 11:36, , 4F
http://tinyurl.com/7lp9lz7 貼錯 不過應該都能參考
03/24 11:36, 4F

03/24 11:47, , 5F
scanf直接把他當string拉出來自己parse即可
03/24 11:47, 5F

03/24 11:48, , 6F
這種沒什麼真正的recursive solution 要flexible就是自
03/24 11:48, 6F

03/24 11:48, , 7F
己去by byte的parses
03/24 11:48, 7F

03/24 12:34, , 8F
輸入完畢以前怎麼知道「即時狀況」是什麼?
03/24 12:34, 8F

03/24 12:35, , 9F
在太簡單的事情上面optimization是沒有意義的
03/24 12:35, 9F

03/24 14:08, , 10F
fgets讀一行到某個buffer,再sscanf
03/24 14:08, 10F

03/25 00:39, , 11F
我會用vector push_back lol
03/25 00:39, 11F
文章代碼(AID): #1JBvcytC (C_and_CPP)