[問題] 迴圈條件 & 陣列宣告的問題

看板C_and_CPP (C/C++)作者 ( )時間12年前 (2013/10/21 03:24), 編輯推噓2(209)
留言11則, 5人參與, 最新討論串1/1
各位版友們好~ 現在一程式,最多可輸入10個整數,並存到陣列中 迴圈要判斷使用者輸入是否是整數?,按下enter後結束 我現在所學到的是 while (scanf("%d",&x)==1) 當有輸入值時執行迴圈 不知道怎麼判斷輸入的是否是整數? 按下enter跳出迴圈我只知道 ch = getchar() != '\n'; 這種寫法 但輸入的是整數不是字元,所以這樣好像不行? 我的想法是 (虛擬碼) int a[]; //錯誤宣告 int count=0; //算輸入幾次 for (int i=0; i<10; i++) { while (輸入為整數 && 不是按enter) { for (int i=0; i<10; i++) { scanf("%d",a+i); //意思就是把輸入的整數存到陣列中 count++; //但不知道a該怎麼宣告或宣告在哪? } } } int a[]是錯誤的,因為不知道輸入有幾個,所以無法知道要多少空間 又不想浪費空間去宣告 a[10] 是否能在使用者輸入N(<=10)個數字,按下enter後,數字就存到陣列並得知裡面有幾個數字? 新手初學,請多多指教~ 謝謝各位的回應!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.45.104

10/21 08:55, , 1F
動態陣列
10/21 08:55, 1F

10/21 08:56, , 2F
ps.你那個不是虛擬碼,只是未完成的程式碼
10/21 08:56, 2F

10/21 10:36, , 3F
你以前是寫js把
10/21 10:36, 3F

10/21 11:09, , 4F
簡單的方法是,輸入寫進char陣列,用isdigit走訪判斷整數~
10/21 11:09, 4F

10/21 12:07, , 5F
類似像這樣.. http://codepad.org/2w7tlXOJ
10/21 12:07, 5F

10/21 13:12, , 6F
這可不好處理, 你要是使用 c++, 可以使用 std::vector
10/21 13:12, 6F

10/21 13:23, , 7F
忘記說,我上面的貼的網址是判斷輸入是否為整數部分
10/21 13:23, 7F

10/21 13:24, , 8F
至於把整數塞回某陣列或處理交回給原PO去組合了
10/21 13:24, 8F

10/21 15:52, , 9F
謝謝各位,看來好像超出我目前學到的程度了@@
10/21 15:52, 9F

10/21 15:53, , 10F
我是用C寫的,不過C++也有在學只是進度很慢
10/21 15:53, 10F

10/21 15:54, , 11F
謝謝abysses,原來這麼複雜,我再慢慢理解~
10/21 15:54, 11F
文章代碼(AID): #1IP2tn7H (C_and_CPP)
文章代碼(AID): #1IP2tn7H (C_and_CPP)