#include <stdio.h>
/*
Acquisisce un array di max 20 numeri e li stampa ordinati in modo crescente.
0 è il carattere d’uscita durante l’immissione
*/
#define MAX_NUM 25
void main (){
int seq[MAX_NUM], i, j, k, temp;
printf(“Inserisci la sequenza di numeri, digita 0 per finire ll’inserimento, puoi inserire un massimo di %d numeri\n”, MAX_NUM);
i = 0;
do {
scanf(“%d”, &seq[i]);
i++;
} while (i < MAX_NUM && (seq[i-1] != 0));
// stampa di controllo 1
//Stampo l’array prima di modificarlo
printf(“CHECK 1 – L’array inserito prima dell’elaborazione e’\n”);
for (k=0; k< MAX_NUM && (seq[k]!=0); k++)
printf(” %d “, seq[k]);
printf(“\n\n”);
//Fine stampa array
for (i = 0; i < MAX_NUM && (seq[i] != 0); i++){
for (j = 0 ; j < MAX_NUM – 1 && (seq[j + 1] != 0); j++){
if (seq[j] > seq[j+1]) {
//comandi per lo scambio appoggiandomi su una variabile temporanea temp
temp = seq[j];
seq[j] = seq[j + 1];
seq[j + 1] = temp;
//fine scambio
}
// stampa di controllo 2
// Questa stampa ti aiuta perchè durante il primo ciclo esterno con i = 0 alla fine di ogni ciclo interno (quello in j) ti mette a video come è diventato l’array dopo una iterazione
if (i == 0) {
printf(“CHECK 2 – L’ array dopo l’iterazione n. %d del ciclo in j con i = %d e’ \n”, j, i);
for (k=0; k< MAX_NUM && (seq[k]!=0); k++)
printf(” %d “, seq[k]);
printf(“\n\n”);
}
// fine stampa di controllo
}
// stampa di controllo 3
// Questa stampa ti aiuta perchè dopo ogni ciclo esterno (quello in i) ti mette a video come è diventato l’array dopo una iterazione
printf(“CHECK 3 – Lo stato dell’ array dopo l’iterazione n. %d del ciclo in i e’ \n”, i);
for (k=0; k< MAX_NUM && (seq[k]!=0); k++)
printf(” %d “, seq[k]);
printf(“\n\n”);
// fine stampa di controllo
}
printf(“L’array ordinato è: \n”);
for (k=0; k< MAX_NUM && (seq[k]!=0); k++)
printf(” %d “, seq[k]);
}