Creiamo altri esempi di funzioni che generano array random in C.
Primo esempio di array random con le funzioni in C
Sviluppare un programma che genera e visualizza due array random tramite l’uso di funzioni. Dunque creare una funzione che generi i due array e una funzione che li visualizzi.
Quindi iniziamo creando la nostra funzione random_array, che riceve un array passato per indirizzo. Questa funzione genera un array di numeri random compresi tra 1 e 10 e restituisce un intero, il numero degli elementi.
Dopo creiamo la funzione print che stampa un array. Questa funzione ha come parametri formali la dimensione dell’array e l’array passato per indirizzo e non restituisce nulla.
Successivamente nel main dichiariamo i due vettori a e b e le due dimensioni n1 ed n2. Dopo invochiamo le funzioni random_array e print.
Ecco dunque il listato completo di array random con le funzioni in C.
#include <stdio.h>
#include <time.h>
#define N 10
int random_array(int *v1) {
int i, n;
srand((unsigned) time(NULL));
do {
printf("Quanti elementi?: ");
scanf("%d", &n);
} while (n<0 || n>N);
for (i=0; i<n; i++)
v1[i] = rand()%10+1;
return n;
}
void stampa_array(int n, int v[]) {
int i;
for (i=0; i<n; i++) {
printf("%d\n", v[i]);
}
}
int main(void) {
int n1, n2, a[N], b[N];
n1 = random_array(a);
stampa_array(n1, a);
printf("\n");
n2 = random_array(b);
stampa_array(n2, b);
return 0;
}
Secondo esempio di array random con le funzioni in C
Realizziamo un secondo esempio, sempre con i numeri random.
Sviluppare un programma che genera e visualizza due array random tramite l’uso di funzioni. Sommare i due array e visualizzare un nuovo array che contiene la somma di ciascun elemento.
In pratica dati due array ad esempio a[5] e b[5], l’array c[5] sarà così composto:
c[0]=a[0]+b[0]; e così via.
Creiamo dunque una funzione sum che prende come parametri formali i due array passati per indirizzo. La funzione è molto semplice da implementare, infatti con un semplice ciclo si sommano gli elementi: c[i] = a[i] + b[i].
#include <stdio.h>
#include <time.h>
#define N 10
void random_array(int *v) {
int i;
srand((unsigned) time(NULL));
for (i=0; i<N; i++)
v[i] = rand()%10+1;
}
void *sum(int *a, int *b){
int i, *c;
for(i=0; i<N; i++) {
c[i] = a[i] + b[i]; //somma gli elementi dei due vettori
printf("%d\t", c[i]);
}
}
void stampa_array(int *v) {
int i;
for (i=0; i<N; i++) {
printf("%d\t", v[i]);
}
}
int main(void) {
int i, a[N], b[N];
char invio;
printf("\nGenero il primo array: ");
random_array(a);
stampa_array(a);
printf("\n\nInvio per generare il secondo array");
scanf("%c", &invio);
printf("\nGenero il secondo array: ");
random_array(b);
stampa_array(b);
printf("\n\nLa somma dei due array: ");
sum(a,b);
return 0;
}
Potete anche consultare altre lezioni sugli array: generare numeri casuali senza ripetizioni e array con numeri random.
Chiaramente questi sono solo dei semplici esempi, più avanti approfondiremo l’argomento.
Alcuni link utili
Realizzare un menù di scelta in C
Somma elementi diagonale principale di una matrice
Come sommare gli elementi della cornice esterna
Ricerca elementi in una matrice
Quali metodi per inserire dati in una matrice