#! /bin/bash
사용했지만 여기서는 생략했습니다. 저는 bash 쉘만 사용했습니다. 첫 번째 정수는 배열의 변수 수입니다. 예, 구문 오류가 발생합니다.
배열과 배열 요소의 합계를 읽어야 합니다. 크기가 N인 정수 배열이 주어졌습니다. 배열에 있는 요소의 합을 인쇄해야 합니다. 이러한 정수 중 일부는 매우 클 수 있다는 점을 기억하세요.
입력 형식:
입력의 첫 번째 줄에는 정수 N이 포함됩니다. 다음 줄에는 배열에 포함된 공백으로 구분된 정수가 포함됩니다(1<=N<=10, 0<=A[i]<=10000000000).
5
1000000001 1000000002 1000000003 1000000004 1000000005
출력 형식:
배열의 요소 합계와 동일한 값을 인쇄합니다.
5000000015
지금까지 내가 한 일:
암호:
#input array size
read N
while [ $N -ge 1 -a $N -le 10 ]
do
echo $N
break
done
for i in `seq 0 N-1`;
do
read -a array[i]
if[ "${array[i]}" -ge 0 -a "${array[i]}" -le 10000000000 ]; then
echo "${array[i]}"
fi
done
#sum=expr `sum + ${ array[i] }`
구문 오류: 연산자가 필요합니다.
내가 어디에서 잘못되고 있는지 알려주실 수 있나요?
답변1
Bash에서 작업하는 경우 인덱스를 사용할 필요가 없습니다.
#!/bin/bash
read N
read -a A
for elem in "${A[@]::N}"; do
((ar_sum+=$elem))
done
echo $ar_sum
for 루프는 다음과 같이 교환될 수 있습니다.
expr $(printf '%b + ' "${A[@]::N}"\\c)