School-Coding-Cpp/sfusi/z.c

65 lines
2.1 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// Funzione per generare un valore casuale compreso tra a e b
int genera_valore_casuale(int a, int b) {
return rand() % (b - a + 1) + a;
}
// Funzione per cercare le occorrenze di un valore specifico in un array
int conta_occorrenze(int array[], int lunghezza, int valore) {
int contatore = 0;
for (int i = 0; i < lunghezza; i++) {
if (array[i] == valore) {
contatore++;
}
}
return contatore;
}
int main() {
int n, a, b, valore_specifico;
// Input della dimensione degli array e degli estremi dell'intervallo
printf("Inserisci la dimensione degli array: ");
scanf("%d", &n);
printf("Inserisci gli estremi dell'intervallo (a e b): ");
scanf("%d %d", &a, &b);
printf("Inserisci il valore specifico da cercare: ");
scanf("%d", &valore_specifico);
// Allocazione dinamica di memoria per gli array
int *array_valori = (int *)malloc(n * sizeof(int));
int *array_random = (int *)malloc(n * sizeof(int));
// Inizializzazione del generatore di numeri casuali
srand(time(NULL));
// Input dei valori nell'array
printf("Inserisci i valori nell'array:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &array_valori[i]);
}
// Generazione di valori casuali e memorizzazione nell'array random
for (int i = 0; i < n; i++) {
array_random[i] = genera_valore_casuale(a, b);
}
// Cerca le occorrenze del valore specifico in entrambi gli array
int occorrenze_valori = conta_occorrenze(array_valori, n, valore_specifico);
int occorrenze_random = conta_occorrenze(array_random, n, valore_specifico);
// Stampa il risultato
printf("Il valore %d compare %d volte nell'array dei valori inseriti.\n", valore_specifico, occorrenze_valori);
printf("Il valore %d compare %d volte nell'array dei valori casuali.\n", valore_specifico, occorrenze_random);
// Deallocazione della memoria
free(array_valori);
free(array_random);
return 0;
}