作者arashi2011 (QQ)
看板C_and_CPP
標題[問題] 陣列宣告問題
時間Mon Apr 17 17:15:38 2017
關於陣列的一個小問題 如果我想要這樣的結果
Enter numbers of points: 5
Enter points: -1 2 3 6 -3 -5 -1 0 10 -24
The points are: (-1.00, 2.00), (3.00, 6.00), (-3.00, -5.00), (-1.00, 0.00),
(10.00, -24.00)
我目前是想用二維陣列把數字存起來 像這樣
printf("Enter numbers of points: ");
scanf("%d", &n);
for(i=0; i<n; i++){
for(j=0; j<2; j++) scanf(" %d", &num[i][j])
for(i=0; i<n; i++){
for(j=0; j<2; j++) printf("%lf", num[i][j]); }
但是這樣數字只能一個一個輸入 如果要像題目一次輸入的話 要怎麼改比較好呢
另外想問像這樣類似的問題 如果輸入n之後才能知道需要的陣列大小
宣告的時候要怎麼宣告呢 我目前是把大小設成一個相對大的數字 但我想應該有更好的方法 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.123.157
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1492420540.A.118.html
1F:→ MOONRAKER: 當一個大字串輸入 然後照空白自己劈開轉換 04/17 17:20
2F:→ MOONRAKER: 夠大就好了 1024也可以 不要糾結什麼「最好」的方法 04/17 17:20
3F:→ MOONRAKER: 新手會在這種地方想很久還發明很奇葩的作法 04/17 17:21
4F:→ MOONRAKER: 以前在本版看過一個不斷malloc 一次增加一個byte 04/17 17:22
5F:→ MOONRAKER: 初學階段後可以用其他更方便的資料結構 04/17 17:22
6F:→ Hazukashiine: 如果接受 C99 的話, Variable-length Array 試試看 04/17 17:22
7F:→ Hazukashiine: 如果不行的話 還是可以 malloc 出剛剛好大小的陣列 04/17 17:25
8F:推 longlongint: 讀檔 把檔案重導到標準輸入 04/18 07:47
9F:→ longlongint: 樓上講的方法 or 用 c++ vector or 動態配置 04/18 07:49
10F:推 steve1012: 可以用stl 的話可以用vector of pair 04/18 14:03
11F:→ ilms49898723: 你的寫法不是就能一次輸入了...? 04/18 15:04
12F:→ hunandy14: 空白會自己變成下一個,這樣寫就可以一次導入了,試試 04/19 02:13
13F:推 bbalabababa: 開夠大的陣列while scanf!=EOF 04/19 03:48