Nel linguaggio di programmazione C, le matrici sono definite in questo modo:
int foo[] = {4, 8, 15, 16, 23, 42}; //Foo implicitly has a size of 6
La dimensione dell'array viene dedotta dagli elementi di inizializzazione, che in questo caso è 6. Puoi anche scrivere un array C in questo modo, dimensionandolo esplicitamente e definendo ciascun elemento nell'ordine:
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;
La sfida
È necessario scrivere un programma o una funzione che espande le matrici dal primo al secondo. Dato che stai scrivendo un programma per allungare il codice e ami l'ironia, devi rendere il codice il più breve possibile.
L'input sarà una stringa che rappresenta l'array originale e l'output sarà la definizione dell'array espanso. Puoi tranquillamente supporre che l'input sarà sempre così:
<type> <array_name>[] = {<int>, <int>, <int> ... };
"Tipo" e "nome_array" saranno composti interamente da caratteri alfabetici e caratteri di sottolineatura _
. Gli elementi dell'elenco saranno sempre un numero compreso tra -2.147.483.648 e 2.147.483.647. Non è necessario gestire gli input in qualsiasi altro formato.
Lo spazio bianco nell'output deve corrispondere esattamente allo spazio bianco nell'output del test, sebbene sia consentita una nuova riga finale.
Test IO:
#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;
Presentato in qualsiasi lingua sono incoraggiati, ma punti bonus se si può fare in C.
Classifica:
Ecco una classifica che mostra le risposte migliori:
foo[0]=1;
accettabile?