題目描述
給定一個國家名稱的清單,請將這份清單存入陣列中,並以空格分隔重新將陣列中索引範圍為3到7(包含3和7)的元素輸出。
原題網址
輸入格式
輸入國家名稱的清單,以換行字元分隔。每個國家名稱都是由英文字母和「-」字元組成。
輸出格式
輸出陣列中索引範圍為3到7(包含3和7)的國家名稱。以空格分隔不同國家。
範例輸入
Namibia
Nauru
Nepal
Netherlands
NewZealand
Nicaragua
Niger
Nigeria
NorthKorea
Norway
Nauru
Nepal
Netherlands
NewZealand
Nicaragua
Niger
Nigeria
NorthKorea
Norway
範例輸出
Netherlands NewZealand Nicaragua Niger Nigeria
解題概念
Bash的陣列元素可以直接使用以下格式來指派:
陣列名稱[索引值]=元素
若之後要取得陣列的元素內容,可以這樣寫:
${陣列名稱[索引值]}
分別將輸入的各行作為元素存到陣列中,Bash可以這樣寫:
i=0
array=
while read LINE
do
array[$i]=$LINE
((i += 1))
done
在兩組小括號中可以直接進行數值計算。
接著使用for迴圈便可以輕易地走訪陣列的所有元素:
for (( n = 0; n < i; n += 1 ))
do
# do something
done
如果要走訪索引3到7的元素,可以這樣寫:
for (( n = 3; n < 7; n += 1 ))
do
# do something
done
參考答案
#!/bin/bash
i=0
array=
while read LINE
do
array[$i]=$LINE
((i += 1))
done
for (( n = 3; n <= 7; n += 1 ))
do
printf ${array[$n]}
if (( n != 7 )) ; then
printf ' '
fi
done