2013-11-22 83 views
-2

我是編程和C++的新手,我正在爲此做使用數組和函數

編寫函數以返回數組範圍的總和。該數組以及 範圍的起點和終點必須作爲函數的參數給出。 您可能想要考慮檢查開始點和結束點是否有效,即 即開始點不大於結束點,起始點爲 不小於零,並且結束點爲不大於數組的末尾。 您需要考慮如何判斷函數的長度。

請幫助

+2

歡迎來到SO,這不是這個網站的工作原理。你需要先嚐試一下,如果你的解決方案存在*特定的問題,那麼請問那些......我們不爲你做功課...... – Nim

回答

1

傳遞一個const std::vector<int>& v並檢查beginend不超過v.size()

int myfunction (const std::vector<int>& v, int begin, int end) 
{ 
    if (begin < 0 || begin >= v.size() || end < 0 || end >= v.size() || begin > end) { 
      // Error handling 
      throw std::runtime_error ("Wrong begin or end"); 
    } 
    // Compute sum: 
    int ret = 0; 
    for (int i = begin; i < end; ++i) 
     ret += v[i]; 
    return ret; 
} 
1

從本質上講,一個數組是值的列表。你被要求做的是在一個範圍內加上一些這些值。假設你的數組有10個值。他們將被索引值爲0 - 9(例如,如果您的數組名稱是查理,您可以通過說「Charlie [0]」來訪問第一個元素。)

爲了在數組中添加一個範圍,我們需要傳遞一個函數數組的名稱(在我們的例子中,'Charlie'),起始值和結束值,它們必須是0到數組長度的數字 - 1,因爲數組中的值總是開始爲零,並且數組中的最後一個值的索引將小於長度的一個;也就是說,數組10的索引將在0和9之間。

此函數將需要一個變量來保存值,並且將需要使用某種類型的循環遍歷循環。

僞代碼,你會看這樣的事:

sum = 0 
for each value between x (the starting value) and y (the ending value) 
    sum = sum + Array[value] 
return sum 

這是否幫助?

+0

是的,它確實謝謝你 – user3021910