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