台灣最大程式設計社群網站
線上人數
1735
 
會員總數:241354
討論主題:186915
歡迎您免費加入會員
討論區列表 >> C/C++ >> 輸入陣列後可以在main()外的函式使用?
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
輸入陣列後可以在main()外的函式使用?
價值 : 100 QP  點閱數:200 回應數:4

樓主

耶露
門外漢
0 1
12 2
發送站內信

請教一下各位大大
陣列在main()使用者輸入後,如何可在另一個函式moveDisk()使用?
之前用#define直接給DISKS常數可以正常運作,但是我想換成DISKS直接給使用者輸入的方式
int pos[3][DISKS];放在main()外面,DISKS要先設定好常數才能運作(似乎無法給使用者輸入)
int pos[3][DISKS];放在main()裡面,DISKS可給使用者設定,但是陣列傳不到moveDisk()
而且程式不知道為什麼會要使用者輸入兩次(輸入河內塔盤數一次就好),執行結果當然不對
請問有什麼方法可以解決[DISKS可給使用者設定,使用只用輸入一次,陣列又可以傳到moveDisk()去做執行呢?或是還有其他方法?]




搜尋相關Tags的文章: [ 陣列 ] ,
本篇文章發表於2017-10-01 16:23
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

小魚
檢舉此回應
你要在main的前面定義函數的指標,
等使用者輸入完數字之後,
使用動態記憶體配置new或malloc的方式來配置記憶體,
不過要記得將記憶體釋放掉,
這部分需要一點時間學習,
要不然容易出錯。
本篇文章回覆於2017-10-01 18:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

耶露
檢舉此回應
謝謝小魚大大,我已增加一些關於malloc二維陣列的程式,使用者輸入後執行上沒有什麼太大的問題
只是在執行程式時還是要輸入兩次才能跑出結果
程式結果基本上以使用者第一次的輸入為主,但是卻要輸入第二次才能看得到程式結果
第二次輸入的數值並不影響第一次輸入後的程式結果
所以當我輸入河內塔盤數(第一次)後,(第二次)隨便輸入一個數才能看到程式結果
整體程式基本上只增加一些關於malloc二維陣列的程式,但是就是找不到多餘的第二次輸入的程式?
本篇文章回覆於2017-10-02 00:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

小魚
檢舉此回應
我試了一下,
scanf那行改成 scanf("%d",&DISK); 就只要輸入一次,
這部分要再研究一下,
我平常都是用cin跟cout的...
本篇文章回覆於2017-10-02 07:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

耶露
檢舉此回應
似乎是輸入不能使用換行字符...總之,謝謝小魚大大,問題已經解決囉!
本篇文章回覆於2017-10-02 15:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.