입력 한 숫자와 그 중에서 가장 크고 작은 숫자의 합계를 표시 해야하는 스크립트를 작성해야합니다. 배열을 사용하고 있습니다. 나는 정상적인 방법으로 이것을 해결했다. 그러나 배열을 사용할 때 합계, 가장 큰 숫자를 얻지 만 가장 낮은 숫자를 얻을 수 있습니다. 가장 작은 숫자에 대한 if 논리 때문에 이해합니다.
내 스크립트 :
#!/bin/bash
sum=0
small=0
big=0
echo "Please enter the number"
while(( n != -99 ));
do
read -a n
arr=${#n[@]}
for((i=0;i<$arr;i++))do
if [ ${n[$i]} -eq -99 ]; then
break
elif [ ${n[$i]} -ne -99 ]; then
sum=$((sum + n[$i]))
if [ ${n[$i]} -gt $big ]; then
big=${n[i]}
elif [ ${n[$i]} -le $small ]; then
small=${n[i]}
fi
fi
done
done
echo "Sum: $sum"
echo "Highest: $big"
echo "Lowest: $small"
산출:
Please enter the number
12
13
14
-99
Sum: 39
Highest: 14
Lowest: 0
@ jimmij 덕분에 ... 더 높은 값으로 시도했지만. 처음에 작은 변수에 저장했던 것과 동일한 값을 얻었습니다. 예를 들어 small = 100을 초기화하면 수백 미만을 삽입 한 결과에 상관없이 가장 낮은 출력 100을
—
Transhumanist
$일부i변수 앞에 a가 없습니다 . 변수가 필요하지 않다고 생각하더라도 항상 변수를 인용하는 습관을들이십시오.