2016-11-10 28 views
1

我製成一個循環來找到從(1至10 MOD 5)計算每個數的結果+ 2殼牌腳本,循環的發現平均結果

for ((i = 0; i <= 10; i++)) 
do 
    calculate=$((i % 5 + 2)) 
    echo "($i % 5) + 2 = " $calculate 
done 
average=$(($calculate/10)) 
echo $average` 

我的問題是固定我的代碼,這樣我可以搭袢的所有結果,並發現它們的平均 其返回回0的平均

回答

1

你必須保持一個完整的總 - ($calculate/10)只是最後迭代。在循環之前保持初始化的運行總數爲零total = 0 ...然後將計算值添加到循環的每次迭代中的總和中total = $($total + $calculate)然後平均值爲total/10(不計算/ 10)。

#!/bin/bash 
total=0 
for ((i = 0; i <= 10; i++)) 
do 
    calculate=$((i % 5 + 2)) 
    total=$(($total + $calculate)) 
    echo "($i % 5) + 2 = " $calculate 
done 
#average=$(($calculate/10)) 
average=$(($total/10)) 
echo $average