2014-03-01 22 views
1

我想填充用戶輸入數字的數組,但是我不知道事先輸入的數量。例如:如果用戶輸入數字6 12 52,我需要創建arr [3]並將它們放入其中,但如果用戶輸入4 5 10 11 45,則需要創建arr [5]。如何統計同時輸入雙數的數字

另一種方法是,因爲我希望我的數組的最大數量的單元格是12,有沒有辦法將少於12個輸入到數組[12]並刪除剩餘的單元格?

這可能是一個明顯的問題,但我似乎無法找到有關此問題的任何有用信息。

感謝您的協助。

回答

1

如果您使用C++嘗試一個向量。否則,你可以分配一個數組(比方說大小爲10),如果你需要使它更大,可以使用realloc使它更大(比如20)等等。

0

C中的數組缺少許多其他語言更好的動態調整大小的功能。考慮到您的限制,使用12號大小的數組似乎是最簡單的解決方案。如果你真的希望通過動態獲得它,你需要先計算空間數量併爲這些元素構建一個數組 - int *args = malloc((space_count+1)*sizeof(int));。或者你需要創建一個大小的數組,並且需要更多的元素。

這是一個little guide post,它更全面地解釋了該技術。

0

在開始獲取實際輸入數字之前,詢問用戶他將提供多少數量並相應地分配空間。

+0

這必須要非常小心,因爲用戶可能是惡意的(或疏忽),並提供比宣佈更多的輸入,可能導致內存損壞。 – EOF

相關問題