配列を読み、合計を出します。

配列を読み、合計を出します。

#! /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)

おすすめ記事