








Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Esercizi relativi all'utilizzo di array numeriche in C. I vari esercizi coprono tematiche come la creazione e inizializzazione di array, l'accesso agli elementi di un array, la creazione di un terzo array combinando elementi di due array e la creazione di insiemi utilizzando array. Il documento include anche esempi di output e codice C per ogni esercizio.
Tipologia: Esercizi
1 / 14
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!









3.1 Esercizi
Esercizio 3.
Esercizio 3.
Esercizio 3.
Numero esami sostenuti: ... Media: ... Media troncata: ... Varianza: ... Deviazione standard: ...
Esercizio 3.
Qual è il 4o valore che vuoi stampare? 4 Qual è il 5o valore che vuoi stampare? 5 30 20 10 40 50
Esercizio 3.
Esercizio 3.
Soluzioni
#include <stdio.h>
#define N 10
void main(){
int v1[N], v2[N], v3[2*N]; int i;
//acquisizione dei due vettori in ingresso for (i = 0; i < N; i++){ printf("Inserire il %d valore del primo vettore: ", i+1); scanf("%d", &v1[i]); } for (i = 0; i < N; i++){ printf("Inserire il %d valore del primo vettore: ", i+1); scanf("%d", &v2[i]); }
//ciclo di inserimento nel vettore in uscita for (i = 0; i < N; i++){ v3[2 (^) * i] = v1[i]; v3[2 (^) * i + 1] = v2[i]; }
//stampa del vettore rislutante printf("Vettore risultante: [ "); for (i = 0; i < (^2) * N; i++){ printf("%d ", v3[i]); } printf("]\n");
#include <stdio.h>
#define MAX_LEN 10
void main(){
int pari[MAX_LEN]; int dispari[MAX_LEN]; int n_val; int i, valore; int n_pari = 0, n_disp = 0;
//chiedo all’utente quanti valori intende immettere do { printf("Inserire il numero di valori da considerare: "); scanf("%d", &n_val); } while (n_val < 1 || n_val > MAX_LEN);
do { printf("Inserire il voto %d: ",i+1); scanf("%d",&voti[i]); } while ( voti[i] < 18 || voti[i] > 30); //aggiorno voto minimo e voto massimo if (voti[i] > voto_massimo) voto_massimo = voti[i]; if (voti[i] < voto_minimo) voto_minimo = voti[i]; //aggiorno la somma dei voti sum += voti[i]; }
//calcolo media e media troncata media = sum / n; media_troncata = (sum - voto_massimo - voto_minimo) / (n-2);
//calcolo varianza e deviazione standard dev = 0; //ciclo per calcolo della sommatoria for (i = 0; i < n; i++) dev += (voti[i] - media) (^) * (voti[i] - media); varianza = dev / (n - 1); deviazione_standard = sqrt(varianza);
//stampa delle statistiche dei voti printf("\nSTATISTICHE VOTI\n"); printf("Il numero degli esami: %d\n",n); printf("La media e’: %f\n",media); printf("La media troncata e’: %f\n",media_troncata); printf("La varianza e’: %f\n",varianza); printf("La deviazione standard e’: %f\n",deviazione_standard);
#include <stdio.h>
#define LEN_DIVI 50 #define N_MAX 50
void main(){
int numeri[N_MAX]; int divisori[LEN_DIVI]; int maxi = -1; int n_val = -1; int i,j;
//chiedo all’utente quanti valori intende immettere while (n_val < 1 || n_val > N_MAX){ printf("Inserire il numero di valori da considerare: "); scanf("%d",&n_val); }
// Inizializzazione divisori for (i = 0; i < LEN_DIVI; i++) divisori[i] = 0;
for (i = 0; i < n_val; i++) { //acquisizione di un valore do { printf("Inserire il %do valore: ",i+1); scanf("%d",&numeri[i]); } while (numeri[i] <= 0); //aggiornamento del massimo if (numeri[i] > maxi) maxi = numeri[i]; //calcolo istogramma for (j = numeri[i] / 2; j > 1; j--) if (numeri[i] % j == 0) divisori[j-1]++; }
//stampa istogramma for (i = 1; i < maxi / 2; i++) { printf("%d\t| ",i+1); for (j = 0; j < divisori[i]; j++) printf("*"); printf("\n"); }
#include <stdio.h>
#define DIM 10
void main(){
//dichiarazione variabili int i; int dim; int min_idx; int max_idx; float valori[DIM];
//acquisizione della dimensione do { printf("Quanti elementi vuoi inserire (max: %d)? ", DIM); scanf("%d", &dim); if (dim > DIM) printf("Il valore inserito e’ troppo grande!\n"); } while (dim > DIM);
//acquisizione valori con ricerca di min max min_idx = 0; //assumiamo che min sia il primo elemento max_idx = 0; //assumiamo che max sia il primo elemento for (i = 0; i < dim; i++) { printf("Inserire il %do valore: ", i+1); scanf("%f", &valori[i]);
if (valori[i] < valori[min_idx]) min_idx = i;
if (valori[i] > valori[max_idx]) max_idx = i;
//si assume che l’utente che vuole indicare il primo elemento (ad // esempio), inserisca il numero 1, quindi dobbiamo decrementare // tutto di 1: 1o, 2o, 3o... -> 0, 1, 2 indice[i] = indice[i] - 1; }
//stampa in ordine stabilito dall’indice for (i = 0; i < dim; i++) { j = indice[i]; printf("%d\n", valori[j]); } }
#include <stdio.h>
#define MAX_LEN 100
void main(){
int n; int lista[MAX_LEN]; int insieme[MAX_LEN]; int lungh_ins; int i,j; int trovato;
//chiedo all’utente quanti elementi vuole inserire do { printf("Inserire il numero degli elementi da inserire: "); scanf("%d", &n); } while ( n < 0 || n > 100);
//ciclo di acquisizione degli elementi for (i = 0; i < n; i++) { printf("Inserire il %do numero : ", i+1); scanf("%d", &lista[i]); }
//scorro gli elementi in lista ed inserisco in insieme lungh_ins = 1; insieme[0] = lista[0]; for (i = 1; i < n; i++) { //controllo se l’elemento gi in insieme trovato = 0; for (j = 0; j < lungh_ins; j++) if (lista[i] == insieme[j]) trovato = 1; //se non ripetuto insrisco if (!trovato) { insieme[lungh_ins] = lista[i]; lungh_ins++; } }
//stampa degli elementi dell’insieme printf("[ "); for (i = 0; i < lungh_ins;i++)
printf("%d ",insieme[i]); printf("]\n");
#define DIM 30
#include <stdio.h>
void main(){
// indici per scansione int i, j;
// dimensione effettiva degli array int dim_a, dim_b;
// flag utile per le ricerche di elementi int trovato;
// array e insiemi A e B int lista[DIM]; int A[DIM]; int B[DIM];
// dimensione effettiva degli insiemi int len_a = 0; int len_b = 0; int len_u = 0; //dimensione unione int len_i = 0; //dimensione intersezione int len_d = 0; //dimensione differenza
// altri insiemi int unione[2*DIM]; // A u B int intersezione[DIM];// A ^ B int differenza[DIM]; // B \ A
do { printf("Quanti elementi vuoi inserire nella prima lista (max: %d)? ", DIM); scanf("%d", &dim_a);
if (dim_a > DIM) printf("Il valore inserito troppo grande!\n"); } while (dim_a > DIM);
for (i = 0; i < dim_a; i++) { printf("Inserire il %do elemento: ", i+1); scanf("%d", &lista[i]); }
//se non trovato, lo inserisco e incremento l’indice if (!trovato) { B[len_b] = lista[i]; len_b++; }
//ricerco il valore i-esimo nella lista for (j = 0; !trovato && j < len_u; j++) trovato = (unione[j] == lista[i]);
//se non trovato, allora va aggiunto all’unione if (!trovato) { unione[len_u] = lista[i]; len_u++; }
/*
//uso len_b-1 perch len_b gi stato incrementato for (j = 0; !trovato && j < len_a; j++) trovato = (A[j] == B[len_b-1]);
//trovato anche in A: allora fa parte dell’intersezione if (trovato) { trovato = 0;
//controllo per non inserire duplicati in intersezione for (j = 0; !trovato && j < len_i; j++) trovato = (intersezione[j] == B[len_b-1]);
if (!trovato) { intersezione[len_i] = B[len_b-1]; len_i++; } } else { //non trovato in A: allora fa parte della differenza /*
//controllo per non inserire duplicati in differenza for (j = 0; !trovato && j < len_d; j++) trovato = (differenza[j] == B[len_b-1]);
if (!trovato) { differenza[len_d] = B[len_b-1]; len_d++; } } }
// stampa l’insieme B printf ("Insieme B = { "); for (i = 0; i < len_b; i++) printf("%d ", B[i]); printf ("}\n");
// stampa l’insieme unione printf ("unione = { "); for (i = 0; i < len_u; i++) printf("%d ", unione[i]); printf ("}\n");
// stampa l’insieme intersezione printf ("intersezione = { "); for (i = 0; i < len_i; i++) printf("%d ", intersezione[i]); printf ("}\n");
// stampa l’insieme differenza printf ("differenza = { "); for (i = 0; i < len_d; i++) printf("%d ", differenza[i]); printf ("}\n"); }