2012-02-09 92 views
0

我正在使用Visual C++ 2010 Express Edition。我宣佈了一個能夠容納50個元素的整數數組。根據用戶給出的條目數,每個條目將作爲數組中的單獨元素存儲。我想添加所有這些未知元素並將答案打印到控制檯。有沒有可能做到這一點,以及如何?C++中的數組 - 添加數組的元素

+4

另外,爲什麼你使用固定大小的數組,而不是矢量? – Pete 2012-02-09 17:08:19

+0

這是功課嗎?或者只是學習?除非你需要爲其他東西保存數據(或者這是針對作業問題的),否則根本不需要數組。 – crashmstr 2012-02-09 17:10:56

+0

這既是學習和家庭作業/項目。 – 2012-02-09 17:30:01

回答

6

你從頭<numeric>尋找std::accumulate()

std::cout << std::accumulate(std::begin(arr), std::end(arr), 0); 

如果用戶給出小於50個元素,那麼你需要考慮的是:

std::cout << std::accumulate(std::begin(arr), arr + element_count, 0); 
+0

如果全部50個元素都有效,那麼這個答案很好。怎麼樣'std :: accumulate(arr,arr + numberOfEntriesTheUserGives,0);' – 2012-02-09 17:06:51

+0

@Rob好點。更新。 – wilhelmtell 2012-02-09 17:10:26

+0

非常感謝wilhelmtell。 – 2012-02-09 17:41:25

0

也許太簡單了,但什麼關於在開始時將所有元素設置爲0(零),然後將所有項添加到循環中,最後打印出加法結果?

+0

謝謝Kamil_H的迴應。如果你能詳細說明會感激不盡? – 2012-02-09 17:54:01

+0

嗯。也許像這樣: 'int myItems [50];' 'memset(myItems,0,50 * sizeof(int));' //這裏用戶向數組插入項目 int result = 0; for(int i = 0; i <50; i ++)result + = myItems [i]; cout <<結果;' – 2012-02-09 17:57:08

+0

我必須學會如何在快速回答中格式化代碼:) – 2012-02-09 18:03:29