Codice dei programmi nella directory:

///File: Esercizi-vettori.txt
ESERCIZI sui vettori
. 1)Mettere in un vettore la tabellina T scelta dall'utente 2)Mettere in un vettore di 100 numeri i primi 100 numeri primi 3)Verificare, data la funzione random(10), calcolare quante volte sono usciti gli 1, quante volte i 2, ...quante volte i 10 in 100000 (centomila) lanci 4)Dato un vettore di 100 elementi, riempirlo con numeri casuali da 1 a 100 verificare poi nel vettore quali numeri (fra 1 e 100) non ci sono Altri dopo aver fatto il 4) 4.1) Quante volte è uscito il numero N (N letto da tastiera) 4.2) Quante volte e' uscito ciascun numero fra 1 e N (N letto da tastiera) 4.3) Quanti numeri fra 1 e 100 NON sono usciti 4.4) Quanti numeri fra 1 e 100 SONO usciti 4.5) Visualizzare il numero che è uscito piu' volte (algoritmo del massimo)
///(Fine file: Esercizi-vettori.txt)

///File: VettoreTabellinaFissa.c
#include <stdio.h> int main() { /// v== [ ][ ][ ] [ ] .... [ ] /// i== 0 1 2 3 .... 9 int v[10]; /// vettore o array di 10 elementi int i; /// i == indice per scorrere il vettore int t; /// t contiene la tabellina /// Riempio il vettore con la tabellina del 2 t=2; for(i=0; i <10; i++) /// Metto nel vettore la tabellina del 2 { v[i]=t*(i+1); } ///for(i=6; i < 8; i++) /// v[i]=100; for(i=0; i < 10; i++) /// Visualizzo il vettore in una sola linea { printf("%3d ",v[i]); } printf("\n"); for(i=0; i < 10; i++) /// Vsualizzo v[0]=2, v[1]=4, .. v[9]=20 su piu' linee { printf("v[%2d] = %d\n",i,v[i]); } printf("\n"); return 0; }
///(Fine file: VettoreTabellinaFissa.c)

///File: Soluzioni-Su-Codeboard.html
<a href=https://codeboard.io/projects/573316> 1) Metto in un vettore la tabellina scelta dall'utente</a><br> <a href=https://codeboard.io/projects/573340> 2) Metto i primi 100 numeri primi in un vettore</a><br>
///(Fine file: Soluzioni-Su-Codeboard.html)

///File: QuantiNumeriMassimi.c
/*** Calcolare quanti numeri sono uguali al massimo di N valori (N letto da tastiera) ***/ #include <stdio.h> int v[1000]; /// valori letti da tastiera void carica(int n) { int valore,i; for(i=0; i <n; i++){ printf("Dammi il %d^ valore ->",i+1); scanf("%d",&valore); v[i]=valore; } } void stampa(int n) { int i; for(i=0; i <n; i++) printf("il %d^ valore = %d\n",i+1,v[i]); } int massimo(int n) { int i; int m=v[0]; /// in m ci metto il primo elemento del vettore v[] for(i=1; i < n; i++) if (v[i]>m) m=v[i]; return m; } int quanti(int n, int max) { int i, cont=0; for(i=0; i <n; i++) if(v[i]==max) cont++; return cont; } int main() { int N; int i; int valore; int max; printf("Quanti valori vuoi darmi (MAX 1000) ->"); scanf("%d",&N); carica(N); stampa(N); max=massimo(N); printf("Il massimo e' %d\n",max); printf("I valori uguali al massimo sono %d\n",quanti(N,max)); return 0; }
///(Fine file: QuantiNumeriMassimi.c)

///File: Esercizio24Gen.txt
Dato un vettore di N elementi interi
, N scelto dall'utente visualizzare: 1) La media degli N valori 2) La differenza di ogni valore dalla media 3) Quanti numeri differiscono dalla media al massimo di 1 unita' 4) Visualizza tutti i valori maggiori della media 5) Visualizza il vettore al contrario (parti dall'ultimo elemento e arriva al primo) 6) Inverti il vettore (se v=={1,2,3,4,5} v diventa {5,4,3,2,1}
///(Fine file: Esercizio24Gen.txt)

///File: VettoreDinamico.c
#include <stdio.h> #include <stdio.h> #include <stdlib.h> int main() { int N; int *v; int i; printf("Quanti valori vuoi -->"); scanf("%d",&N); v=malloc(sizeof(int)*N); /// da qui in poi v[] e' un vettore di N elementi for(i=0; i < N; i++) v[i]=i; for(i=0; i < N; i++) printf("%d\n",v[i]); return 0; }
///(Fine file: VettoreDinamico.c)

///File: EsercizioVettori27Gennaio.c
#include <stdio.h> #define MAX 100 /// dimensione dei vettori double somma(int v[], int nval) { int i; double s = 0; for (i = 0; i < nval; i++) s += v[i]; return s; } double media(int v[], int nval) { return somma(v,nval)/nval; } void differenza_media(int v[], int nval) /// scrive sullo schermo la differenza di ogni valore dalla media { int i; double diff; double m = media(v,nval); printf(" Valore Differenza\n"); for (i = 0; i < nval; i++) { diff = v[i] - m; printf("%12d", v[i]); printf("%12.2lf\n", diff); } } void visualizza_maggiori (int v[], int nval) /***visualizza i numeri maggiori della media***/ { int i; double m = media(v,nval); for(i = 0; i < nval; i++) if (v[i] > m) printf("%d\n", v[i]); } void numeri_vicini_media (int v[], int nval) /// visualizza i numeri che differiscono di al piu' di una unita' dalla media { int i; double m = media(v,nval); for(i = 0; i < nval; i++) /// if (v[i] - m < -1 || v[i] - m > 1) /// ho trovato subito la condizione che NON va bene if (!(v[i] - m < -1 || v[i] - m > 1)) /// allora, la inverto la condizione con il ! (NOT) printf("%d\n", v[i]); } int main() { int nval, temp; int v[MAX] = {0}; do { printf("Quanti numeri vuoi inserire? (massimo %d) -->", MAX); scanf("%d", &nval); } while(nval < 1 || nval > MAX); for (temp = 0; temp < nval; temp++) { printf("Inserisci un numero: "); scanf("%d", &v[temp]); } printf("La tua media e' di %.2lf\n", media(v, nval)); printf("La differenza dalla media e':\n"); differenza_media(v, nval); printf("I numeri piu' grandi della media sono: \n"); visualizza_maggiori(v, nval); printf("I numeri che differiscono non piu' di una unita' dalla media sono:\n"); numeri_vicini_media(v,nval); return 0; }
///(Fine file: EsercizioVettori27Gennaio.c)

///File: Statistica-lettere.c
#include <stdio.h> #include <stdlib.h> int main() { int car, i; int c[26] = {0}; while((car=getchar())!= EOF){ c[car - 'a']++; } /*** A=7 B=12 C=2 .... ***/ for(i = 0; i < 26; i++) printf("%c = %d\n", i + 'a', c[i]); return 0; }
///(Fine file: Statistica-lettere.c)

///File: EserciziAllenamentoVettori7feb.c
#include <stdio.h> #include <stdlib.h> int eordinato(int v[], int nelem) { int i; for(i = 0; i < nelem - 1; i++) if(v[i] > v[i+1]) return 0; return 1; } int euguale(int v1[], int v2[], int nelem) { int i; for(i= 0; i < nelem; i++) if(v1[i] != v2[i]) return 0; return 1; } void stampa(int v[], int nelem) { int i; for(i = 0; i < nelem; i++) printf("%4d ", v[i]); printf("\n"); } void scambia(int v1[], int v2[], int nelem) { int i, apg; for(i = 0; i < nelem; i++) { apg = v1[i]; v1[i] = v2[i]; v2[i] = apg; } } int main() { int i; int v1[] = {1, 2, 3, 4, 5, 6}; int v2[] = {7, 8, 9, 10, 11, 12}; int nelem=sizeof(v1)/sizeof(int); if(eordinato(v1, nelem)) printf("Si\n"); else printf("No\n"); if(euguale(v1, v2, nelem)) printf("Uguali\n"); else printf("Diversi\n"); // Scambiare i valori da un vettore a un altro // senza l'utilizzo di un vettore d'appoggio stampa(v1, nelem); stampa(v2, nelem); scambia(v1, v2, nelem); stampa(v1, nelem); stampa(v2, nelem); return 0; }
///(Fine file: EserciziAllenamentoVettori7feb.c)

///File: TestRandom.c
/***3)Verificare, data la funzione random(10), calcolare quante volte sono usciti gli 1, quante volte i 2, ...quante volte i 10 in 100000 (centomila) lanci */ #include <stdio.h> #include <stdlib.h> #include <time.h> #include <unistd.h> // Random(X) ritorna un numero fra 1 e X int Random(int N) { static int primavolta = 1; // BOOLEANO if (primavolta) { srand(time(NULL)); /* inizializzo il seme */ primavolta = 0; } return (rand() % N) + 1; } int main() { int vettore[10] = {0}; int cont; int estratto = 0; int totale= 0; for(cont = 1; cont <= 100000; cont++) { estratto = Random(10); vettore[estratto - 1]++; /// oppure vettore[Random(10) -1]++ } for(cont = 0; cont < 10; cont++) { printf("il %2d, e' uscito %6d volte\n", cont+1, vettore[cont]); totale = totale + vettore[cont]; /// Faccio la verifica che siano usciti 100000 numeri } printf("numeri estratti totali : %d", totale); }
///(Fine file: TestRandom.c)

///File: EserciziVettoriEfunzioni.txt
//-------------------------------------------------------------------------------------- //Esercizi sui vettori Febbario 2026 //-------------------------------------------------------------------------------------- // A1 (3) // riempire v[] con N elementi (N letto da tastiera) random fra 1 ed M (M letto da tastiera, M >= N) // in modo che il vettore NON contenga numeri primi. //A2 (3) // Dati due vettori ordinati di N elementi v1[] e v2[] mettere in // un terzo vettore (di dimensione 2*N) i valori di v1 e v2, mantenendo l'ordinamento in V3 // (non ordinare v3 dopo averlo riempito - usare un solo ciclo) //A3 (1) // dato v[] vettore di prezzi di N prodotti, q[] vettore di quantita' di N prodotti // produrre in s[] i totali ottenuto moltiplicando ciascun prezzo di prodotto per la sua quantita' // es: v[]= [1.10, 2.15, 0.50] , q=[2,1,4] allora in s ci viene messo: s[]=[2.20,1.15,2.00] //A3.2 (2) // come sopra ma con vettore sconti[] che contiene la percentuale di sconto per quel prodotto // es se sconto=[50, 0, 10] allora s[] = [1.10,1.15,1.80] //A4 (3) // void sequenze(int v[],int n) // visualizza sullo schermo quelle parti di vettore con sequenze consecutive // esempio: // se v=[1,2,5,3,4,5,-2,-1,0,7,4,5,6] // visualizza: // 1,2 // 3,4,5 // -2,-1,0 // 4,5,6 //A5 (2) // void differenzeuno(int v[], int n) // Ritorna vero se, per ogni numero il successivo e' uno in piu' o uno in meno // es: se v[]=[1,2,3,2,1,0,1] ritorna vero // se v[]=[1,2,4,3,2,1,0] ritorna falso //A6 (1) // void asterischi(int v[], int n) // il vettore v[] contiene numeri fra zero e 50 // Si produca il disegno a schermo che rappresenta, per ogni numero del vettore, la sua // quantita', in orizzontale, in asterischi // es: v=[1,4,7,2,0,1] // Ottengo il disegno: // * // **** // ******* // ** // // * //A7 (3) // disordina... // dato un vettore v[] di n elementi ordinato // renderlo "ben disordinato" con gli stessi elementi // esempio: se v[] e' [1,4,5,6,12,32], puo' diventare [4,32,1,5,12,6] oppure [6,32,4,12,5,1] //Gruppo denominato C //--------------------------------------------------------------------------- // Esercizi su vettori di interi // Fare le funzioni richieste rispettando il prototipo // e le specifiche // (n e' la dimensione dei vettori) //--------------------------------------------------------------------------- //C1 (1) int vettpari(int v1[], int v2[], int n) // legge da v2 e copia in v1 solo i valori pari; ritorna il numero // di elementi copiati //C2 (1) int numzeri(int v[], int n) // ritorna il numero di valori a zero nel vettore v //C3 (1) int vett_tabellina(int v[11], int tab) // ritorna nel vettore v[] la tabellina tab // es se tab=3 in v[] ci mette [0,3,6,9,...30] //C3 (1) int vett_tabellina(int v[11]) // ritorna la tabellina (es 7) se nel vettore c'e' esattamente la tabellina del 7 // es ritorna 3 se in v[] c'e' [0,3,6,9,...30], ritorna 0 se in v[] non c'e' una tabellina //C4 (1) int numdivis(int v[], int num, int n) // ritorna il numero di elementi del vettore v[] // che sono divisibili per il valore num //C5 (2) int numchar(int v[], int n) // ritorna il numero di valori di v[] che corrispondono al codice ASCII // di una lettera (maiuscola o minuscola) // es: se v=[0,-2,345,97,98,65,66] ritorna 4 // perche' 97, 98 sono codici ascii di minuscole; 65 e 66 di maiuscole //C6 (1) int numcifre(int v[], int n) // ritorna il numero di valori di v[] che corrispondono al codice ASCII // di una cifra // es: se v=[0,-2,48,50,97] ritorna 2 // perche' 48, 50 sono codici ascii di cifre //C7 (1) int numcompresi(int v[], int min, int max, int n) // ritorna il numero di valori di v[] compresi fra min e max //C8 (2) int numdiversi(int v1[], int v2[], int num, int n) // legge da v2 e copia in v1 i valori, se diversi da num; // ritorna il numero di valori copiati //C10 (2) void sommaprecedenti(int v1[], int v2[], int n) // legge da v2 e copia in v1 la somma dei precedenti; // es: se v2=[1,2,2,3,5] v1 diventa [1,3,5,8,13]
///(Fine file: EserciziVettoriEfunzioni.txt)