【发布时间】:2016-12-01 20:14:07
【问题描述】:
该程序的主要目标是模拟用户选择多次绘制卡片,然后使用“*”打印出直方图,以表示每张卡片上的命中次数。但是,我遇到的问题是检索每个数组中的元素并打印与它们相关的星星。这是我目前所拥有的:
timelimit=5
echo -e "How many trials would you like to run? \c"
read -t $timelimit trials
if [ ! -z "$trials" ]
then
echo -e "\nWe will now run $trials trials"
else
trials=10
echo -e "\nWe will now run the default amount of trials: $trials"
fi
count=1
MAXCARD=53
declare -a CARDARRAY
while [ "$count" -le $trials ]
do
card=$RANDOM
let "card %= MAXCARD"
let "CARDARRAY[$card] += 1"
let "count += 1"
done
echo ${CARDARRAY[@]}
for (( i=0; i<${#CARDARRAY[@]}; i++));
do
#declare "temp"="${CARDARRAY[$i]}"
#echo "$temp"
#for (( j=0; j<temp; j++));
#do
#echo "*"
#done
echo "$i"
done
显然,最后一个 for 循环是我遇到问题的地方,目前是根据每张卡片的命中次数打印星星的最新尝试。
【问题讨论】:
标签: arrays bash shell loops iteration