### Esercizio: Ordinamento di un array di stringhe in base alla lunghezza **Traccia:** Scrivi un programma in C che ordini un array di stringhe in base alla loro lunghezza, dal più corto al più lungo. L'array iniziale è `{"mela", "kiwi", "banana", "arancia", "uva"}`. **Svolgimento:** #include // Funzione per scambiare due stringhe void scambiaStringhe(char *a, char *b) { char temp[50]; int i; for (i = 0; a[i] != '\0'; i++) { temp[i] = a[i]; } temp[i] = '\0'; for (i = 0; b[i] != '\0'; i++) { a[i] = b[i]; } a[i] = '\0'; for (i = 0; temp[i] != '\0'; i++) { b[i] = temp[i]; } b[i] = '\0'; } // Funzione di ordinamento per lunghezza delle stringhe void bubbleSortLunghezzaStringhe(char arr[][50], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { // Confronta le lunghezze delle stringhe e scambia se necessario int lunghezzaA = 0; while (arr[j][lunghezzaA] != '\0') { lunghezzaA++; } int lunghezzaB = 0; while (arr[j + 1][lunghezzaB] != '\0') { lunghezzaB++; } if (lunghezzaA > lunghezzaB) { scambiaStringhe(arr[j], arr[j + 1]); } } } } int main() { char arrayStringhe[][50] = {"mela", "kiwi", "banana", "arancia", "uva"}; int n = sizeof(arrayStringhe) / sizeof(arrayStringhe[0]); // Chiama la funzione di ordinamento per lunghezza delle stringhe bubbleSortLunghezzaStringhe(arrayStringhe, n); // Stampa l'array di stringhe ordinato per lunghezza printf("Array di stringhe ordinato per lunghezza:\n"); for (int i = 0; i < n; i++) { printf("%s\n", arrayStringhe[i]); } return 0; }