我是 Shell Scripting 的新手,并在下面創建了代碼,但我需要使用回圈或其他方法來簡化代碼以使其更短。當我嘗試在我的代碼中使用 for 回圈時,我無法獲得正確的輸出,所以我使用了 if-else 陳述句。所以程式應該提示用戶輸入 10 個數字,將它們平均分配給兩個陣列,并將每個元素與其他元素進行比較。
#!/bin/bash
declare -a Array1
declare -a Array2
for ((i = 1; i<3; i ))
do
echo "(Array $i)"
for((j = 0; j<5; j ))
do
read -p "Enter number: " num
if [ $i == 1 ];
then
Array1[$j]="$num"
else
Array2[$j]="$num"
fi
done
done
echo "(Array 1) ${Array1[@]}"
echo "(Array 2) ${Array2[@]}"
arr11=${Array1[0]}
arr12=${Array1[1]}
arr13=${Array1[2]}
arr14=${Array1[3]}
arr15=${Array1[4]}
arr25=${Array2[0]}
arr24=${Array2[1]}
arr23=${Array2[2]}
arr22=${Array2[3]}
arr21=${Array2[4]}
if(( $arr11 > $arr21 ));then
echo "$arr11 > $arr21"
elif (( $arr11 < $arr21 ));then
echo "$arr11 < $arr21"
else
echo "$arr11 == $arr21"
fi
if(( $arr12 > $arr22 ));then
echo "$arr12 > $arr22"
elif (( $arr12 < $arr22 ));then
echo "$arr12 < $arr22"
else
echo "$arr12 == $arr22"
fi
if(( $arr13 > $arr23 ));then
echo "$arr13 > $arr23"
elif (( $arr13 < $arr23 ));then
echo "$arr13 < $arr23"
else
echo "$arr13 == $arr23"
fi
if(( $arr14 > $arr24 ));then
echo "$arr14 > $arr24"
elif (( $arr14 < $arr24 ));then
echo "$arr14 < $arr24"
else
echo "$arr14 == $arr24"
fi
if(( $arr15 > $arr25 ));then
echo "$arr15 > $arr25"
elif (( $arr15 < $arr25 ));then
echo "$arr15 < $arr25"
else
echo "$arr15 == $arr25"
fi
uj5u.com熱心網友回復:
從用戶獲取輸入后,您可以在代碼中使用單個 for 回圈進行主要處理。這是代碼:
#!/bin/bash
declare -a Array1
declare -a Array2
for ((i = 1; i<3; i ))
do
echo "(Array $i)"
for((j = 0; j<5; j ))
do
read -p "Enter number: " num
if [ $i == 1 ];
then
Array1[$j]="$num"
else
Array2[$j]="$num"
fi
done
done
echo "(Array 1) ${Array1[@]}"
echo "(Array 2) ${Array2[@]}"
for ((j = 0; j<5; j ))
do
if(( Array1[$j] > Array2[4-$j] ));then
echo "${Array1[$j]} > ${Array2[4-$j]}"
elif (( Array1[$j] < Array2[4-$j] ));then
echo "${Array1[$j]} < ${Array2[4-$j]}"
else
echo "${Array1[$j]} = ${Array2[4-$j]}"
fi
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/488627.html
標籤:算法
上一篇:是否有更快的方法可以在一維陣列中將一個“0”隨機交換為一個“1”?
下一篇:Kotlin資料結構和演算法
