#include #define N 10 /********* PUNTO A **********/ /* Stampa i primi n interi di a[] */ void print(int a[], int n){ } int mainA(){ int v[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int *p = &v[3], *q = v+7; print(v, 10); print(&v[5], 3); print(v+5, 3); print(p+1, 2); print(&p[1], 2); print(q-5, 4); print(&q[-5], 4); return 0; } /********* PUNTO B **********/ /* Legge una sequenza di interi da standard input terminante con un carattere non convertibile in intero oppure EOF. Restituisce il numero di interi letti */ int read(int a[]){ return -1; } int mainB(){ int v[10], n; n = read(v); printf("n = %d\n", n); print(v,n); // non e' corretto se n>10 if(n>2){ print(v,n-2); print(v+2, n-2); // OPPURE: print(&v[2], n-2); } return 0; } /********* PUNTO C **********/ /* Legge una sequenza di interi da standard input terminante con un carattere non convertibile in intero oppure EOF. Se la sequenza ha lunghezza > N, vengono letti solo i primi N interi Restituisce il numero di interi letti */ //int read(int a[]){... } int mainC(){ int v[N] = {0}, n; n = read(v); printf("n = %d\n", n); print(v,n); /* e' sempre corretto in quanto n<= N */ if(n>2){ print(v,n-2); print(v+2, n-2); } return 0; } /********* PUNTO D **********/ /* Calcola la media dei primi n elementi di a[] */ // media(...){ ... } int mainD(){ int v[N], n; n = read(v); print(v,n); // printf("Media = %f\n", media(v,n)); return 0; } /********* PUNTO E **********/ /* Scambia *a con *b */ void swap(int *a, int *b){ int t; t = *a; *a = *b; *b = t; } /* Scambia gli elementi di a[] dalla posizione i alla posizione j, con i