題目描述
給定一個國家名稱的清單,請將這份清單存入陣列中,並以空格分隔重新將這些國家名稱輸出。
原題網址
輸入格式
輸入國家名稱的清單,以換行字元分隔。每個國家名稱都是由英文字母和「-」字元組成。
輸出格式
輸出陣列中所儲存的國家名稱。以空格分隔不同國家。
範例輸入
Namibia
Nauru
Nepal
Netherlands
NewZealand
Nicaragua
Niger
Nigeria
NorthKorea
Norway
Nauru
Nepal
Netherlands
NewZealand
Nicaragua
Niger
Nigeria
NorthKorea
Norway
範例輸出
Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway
解題概念
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
參考答案
#!/bin/bash
i=0
array=
while read LINE
do
array[$i]=$LINE
((i += 1))
done
for (( n = 0; n < i; n += 1 ))
do
printf ${array[$n]}
if (( n != i - 1 )) ; then
printf ' '
fi
done