Na linguagem de programação C, as matrizes são definidas assim:
int foo[] = {4, 8, 15, 16, 23, 42}; //Foo implicitly has a size of 6
O tamanho da matriz é inferido a partir dos elementos de inicialização, que neste caso são 6. Você também pode escrever uma matriz C dessa maneira, dimensionando-a explicitamente e definindo cada elemento na ordem:
int foo[6]; //Give the array an explicit size of 6
foo[0] = 4;
foo[1] = 8;
foo[2] = 15;
foo[3] = 16;
foo[4] = 23;
foo[5] = 42;
O desafio
Você deve escrever um programa ou função que expanda matrizes da primeira maneira para a segunda. Como você está escrevendo um programa para aumentar o código e adora a ironia, deve torná-lo o mais curto possível.
A entrada será uma sequência que representa a matriz original e a saída será a definição de matriz expandida. Você pode assumir com segurança que a entrada sempre será assim:
<type> <array_name>[] = {<int>, <int>, <int> ... };
"Type" e "array_name" serão compostos inteiramente de caracteres do alfabeto e sublinhados _
. Os elementos da lista sempre serão um número no intervalo de -2.147.483.648 a 2.147.483.647. Entradas em qualquer outro formato não precisam ser manipuladas.
O espaço em branco na sua saída deve corresponder exatamente ao espaço em branco na saída de teste, embora uma nova linha à direita seja permitida.
Teste de E / S:
#in
short array[] = {4, 3, 2, 1};
#out
short array[4];
array[0] = 4;
array[1] = 3;
array[2] = 2;
array[3] = 1;
#in
spam EGGS[] = {42};
#out
spam EGGS[1];
EGGS[0] = 42;
#in
terrible_long_type_name awful_array_name[] = {7, -8, 1337, 0, 13};
#out
terrible_long_type_name awful_array_name[5];
awful_array_name[0] = 7;
awful_array_name[1] = -8;
awful_array_name[2] = 1337;
awful_array_name[3] = 0;
awful_array_name[4] = 13;
Envios em qualquer idioma são encorajados, mas pontos de bônus se você puder fazê-lo em C.
Entre os melhores:
Aqui está um cabeçalho mostrando as principais respostas:
foo[0]=1;
aceitável?