02. Es. svolto: caricamento II

Traccia:

Caricare un array a di 100 elementi in modo ciclico con la seguente sequenza:

2 -4 5 2 11

Strategia:

Poiché la sequenza da ripetere è composta da 5 elementi è opportuno procedere con l'aritmetica modulare applicando l'operatore modulo 5.

Poiché la sequenza appare composta in modo casuale conviene caricare i 5 elementi in un array di appoggio, che chiamiamo appo, in modo che sia

appo[0] = 2

appo[1] = -4

appo[2] = 5

appo[3] = 2

appo[4] = 11

Il caricamento dell'array a verrà fatto a partire dall'array di appoggio appo sfruttando l'aritmetica modulare sugli indici di quest'ultimo.

Svolgimento:


#include <stdio.h>

int main()

{

int a[100], i;

// Dichiaro e inizializzo l'array appo

int appo[5] = {2, -4, 5, 2, 11};

// Carico l'array con una sequenza ciclica

printf("Caricamento dell'array con una sequenza ciclica:\n\n");

i=0;

while (i<100){

a[i] = appo[i%5];

printf("%d ", a[i]);

i++;

}

return 0;

}

Nota:

L'inizializzazione di un array può essere fatta al momento della dichiarazione così come mostrato di seguito:

int appo[5] = {2, -4, 5, 2, 11};

Questa istruzione è equivalente al seguente blocco di istruzioni:


int appo[5];

appo[0] = 2;

appo[1] = -4;

appo[2] = 5;

appo[3] = 2;

appo[4] = 11;