读取数组并求和

读取数组并求和

#! /bin/bash虽然我用过,但这里省略了。我只使用了 bash shell。第一个整数是数组中变量的数量。是的,我确实遇到语法错误。

需要读取数组以及数组元素的总和。给定一个大小为 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)

相关内容