array de leitura e soma dos elementos

1

#! /bin/bash omiti aqui embora eu usei. Eu usei apenas shell bash. primeiro inteiro é o número de variáveis na matriz. sim eu recebi erro de sintaxe.

precisa ler a matriz e a soma dos elementos da matriz. dada uma matriz de inteiros de tamanho N. Você precisa imprimir a soma dos elementos na matriz, tendo em mente que alguns desses inteiros podem ser bem grandes.

Formato de entrada:

A primeira linha da entrada consiste em um inteiro N. A próxima linha contém números inteiros separados por espaço contidos no array (1 < = 10, 0 < i [< = 10000000000).

5
1000000001 1000000002 1000000003 1000000004 1000000005

Formato de saída:

Imprima um único valor igual à soma dos elementos no array.

5000000015

o que eu fiz até agora:

código:

#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] }'

Erro de sintaxe: operador esperado

Você poderia, por favor, me avisar onde eu errei?

    
por nishant jha 13.08.2016 / 13:39

1 resposta

1

Se operarmos no bash, não precisamos usar índices

#!/bin/bash
read N 
read -a A
for elem in "${A[@]::N}"; do
    ((ar_sum+=$elem))
done
echo $ar_sum

for-loop pode ser trocado por

expr $(printf '%b + ' "${A[@]::N}"\c)
    
por 13.08.2016 / 14:06