======== Es. 2 ======== #include main () { int i,n; char c; do { getchar(c); if (c > ='0' && c < = '9') {n = c-'0'; for(i=0;i #define n 10 #define FALSE 0 #define TRUE 1 main() { int i; int ordinato = TRUE; int array[n]; printf("Inserisci gli elementi dell'array:\n"); for (i = 0; i < n; i++) { printf("> "); scanf("%d", &array[i]); } i = 0; while(ordinato && i < n - 1) if (array[i] > array[i+1]) ordinato = FALSE; else i++; if (ordinato) printf("L'array e' ordinato.\n"); else printf("L'array non e' ordinato.\n"); } ======== Es. 5 ======== #include #define n 10 main() { int i, j, temp; int A[n]; printf("Inserisci gli elementi dell'array:\n"); for (i = 0; i < n; i++ ) { printf("> "); scanf("%d", &A[i]); } i = 0; j = n - 1; while (i < j) { temp = A[i]; A[i] = A[j]; A[j] = temp; i++; j--; } for (i = 0; i < n; i++ ) printf("%d ", A[i]); printf("\n"); } ======== Es. 6 ======== #include #define n1 7 #define n2 10 #define FALSE 0 #define TRUE 1 main() { int i, j; int a[n1], b[n2]; int tutti, trovato; printf("Inserisci gli elementi del primo array:\n"); for (i = 0; i < n1; i++) { printf("> "); scanf("%d", &a[i]); } printf("Inserisci gli elementi del secondo array:\n"); for (i = 0; i < n2; i++) { printf("> "); scanf("%d", &b[i]); } i = 0; tutti = TRUE; while (tutti && i < n1) { j = 0; trovato = FALSE; while (!trovato && j < n2) if (a[i] == b[j]) trovato = TRUE; else j++; if (!trovato) tutti = FALSE; else i++; } if (tutti) printf("Gli elementi del primo array sono un sottoinsieme degli elementi del secondo array.\n"); else printf("Gli elementi del primo array NON sono un sottoinsieme degli elementi del secondo array.\n"); } ======== Es. 7 ======== #include #define n1 7 #define n2 10 #define FALSE 0 #define TRUE 1 main() { int i, j; int a[n1], b[n2]; int tutti; printf("Inserisci gli elementi del primo array:\n"); for (i = 0; i < n1; i++) { printf("> "); scanf("%d", &a[i]); } printf("Inserisci gli elementi del secondo array:\n"); for (i = 0; i < n2; i++) { printf("> "); scanf("%d", &b[i]); } i = 0; tutti = TRUE; while (tutti && i < n1) { j = 0; while (tutti && j < n2) if (a[i] == b[j]) tutti = FALSE; else j++; if (tutti) i++; } if (tutti) printf("I due array non hanno elementi in comune.\n"); else printf("I due array hanno almeno un elemento in comune.\n"); } ======== Es. 8 ======== #include #define n1 7 #define n2 10 #define FALSE 0 #define TRUE 1 main() { int i, j; int a[n1], b[n2]; int tutti, trovato; printf("Inserisci gli elementi del primo array:\n"); for (i = 0; i < n1; i++) { printf("> "); scanf("%d", &a[i]); } printf("Inserisci gli elementi del secondo array:\n"); for (i = 0; i < n2; i++) { printf("> "); scanf("%d", &b[i]); } i = 0; trovato = FALSE; while (!trovato && i < n1) { j = 0; tutti = TRUE; while (tutti && j < n2) if (a[i] % b[j] == 0) j++; else tutti = FALSE; if (tutti) trovato = TRUE; else i++; } if (trovato) printf("Esiste almeno un elemento del primo array divisibile da tutti gli elementi del secondo array.\n"); else printf("Nessun elemento del primo array e' divisibile da tutti gli elementi del secondo array.\n"); } ======== Es. 9 ======== #include #define n1 7 #define n2 10 #define FALSE 0 #define TRUE 1 main() { int i, j; int a[n1], b[n2]; int trovato; printf("Inserisci gli elementi del primo array:\n"); for (i = 0; i < n1; i++) { printf("> "); scanf("%d", &a[i]); } printf("Inserisci gli elementi del secondo array:\n"); for (i = 0; i < n2; i++) { printf("> "); scanf("%d", &b[i]); } i = 0; trovato = FALSE; while (!trovato && i < n1) { j = 0; while (!trovato && j < n2) if (a[i] + b[j] == 10) trovato = TRUE; else j++; if(!trovato) i++; } if (trovato) printf("Esiste una coppia di elementi la cui somma e' 10.\n"); else printf("Nessuna coppia di elementi ha somma 10.\n"); } ======== Es. 10 ======== vedi lezione sugli algoritmi di ordinamento (in maggio) ======== Es. 11 ======== #include #define n 10 main() { int i, j, temp; int a[n]; printf("Inserisci gli elementi dell'array:\n"); for (i = 0; i < n; i++ ) { do { printf("> "); scanf("%d", &a[i]); } while (a[i] != 0 && a[i] != 1); } i = 0; j = n - 1; while (i < j) { while (i < j && a[i] == 0) i++; while (i < j && a[j] == 1) j--; if (i < j) { temp = a[i]; a[i] = a[j]; a[j] = temp; i++; j--; } } for (i = 0; i < n; i++ ) printf("%d ", a[i]); printf("\n"); }